【问题标题】:C#: Simple TCP server questionC#:简单的 TCP 服务器问题
【发布时间】:2010-10-21 10:46:59
【问题描述】:

我试图在我用来监听连接的套接字上发送一个数据包 - 我当然失败了。

我记得我用帕斯卡编码的日子,还有另一个我应该发送连接的套接字,它是在“接受”之后收到的。

好吧,如果这是正确的,那么这就是我的问题:

我在我的 TCP 服务器 (C#) 中使用 WSAAsyncSelect()

protected override void WndProc(ref Message m)
    {
        switch (m.Msg)
        {

            case Values.MESSAGE_ASYNC:
                switch (m.LParam.ToInt32())
                {
                    case Values.FD_ACCEPT:
                        WS2.Accept();
                        break;

                    case Values.FD_READ:
                        WS2.Receive();
                        break;
                    case Values.FD_CLOSE:
                        WS2.Close();
                        break;
                }
                break;

            default:
                base.WndProc(ref m);
                break;
        }
    }

当客户端连接时,我必须向它发送一个数据包。

如何获取我必须向该客户端发送数据包的套接字?

我没有调用Accept(),因为我不知道在C#中应该怎么做,一直在找例子,但是没有一个使用旧的WSAAsyncSelect()。

请提供一个例子说明应该如何做。

提前致谢!

【问题讨论】:

    标签: c# tcp winsock


    【解决方案1】:

    看看TcpListener。将语言限制为 C# 以摆脱非 C# 示例。

    【讨论】:

    • 是的,将链接更改为 TcpListener - 仅将语言过滤器更改为 C#。
    • 非常糟糕的例子,但我知道它是如何工作的。Socket clientsock = sock.Accept();
    猜你喜欢
    • 2011-11-16
    • 1970-01-01
    • 2016-09-16
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    相关资源
    最近更新 更多