C#:简单的TCP服务器问题

标签 c# tcp winsock

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

我记得我用 pascal 编码的日子,我也应该发送另一个套接字,它是在“接受”之后收到的。

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

我在我的 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()。

请举例说明应该如何完成。

提前致谢!

最佳答案

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

关于C#:简单的TCP服务器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/783061/

相关文章:

c - 创建隧道时需要 "maxfd"做什么?

c - C 中的多客户端服务器 - 哪种方法最适合这种特定情况?

c - c winsock编程中服务器收不到客户端消息

tcp - 选择本地端口号

c# - 如何在C#中将声波转换为midi?

c# - SQL Server 中 varchar(MAX) 的大小限制

C# 多行文本框错误

tcp - 是否可以在 wireshark 中查看两个远程主机之间的 TCP 流量?

c# - 服务器给出异常并且无法启动

c# - 如何删除 Unity3D 中按钮之间的间距?