C#-服务器/C++;客户端:Socket.Accept()永远不会完成 我正在编写一个简单的C++客户端,它应该连接到C server。而且,当客户端运行正常,甚至声明它发送了一系列比特时,C#server永远不会通过listener.Acceppt():
我从这里获取了服务器源: 我使用的客户端代码可以在这里找到: 我还检查了服务器和相应的,这工作得很好。我还检查了客户端的返回值,这看起来也很合理。所以我猜问题在于C++如何处理细节。 我试图通过Wireshark找到一些线索,但奇怪的是,在所使用的端口(11000)上完全没有任何通信的痕迹 我应该从哪里着手解决这个问题 更新:目前所有通信都只在本地运行。我尝试了我的IPAddress(从C#-服务器/C++;客户端:Socket.Accept()永远不会完成 我正在编写一个简单的C++客户端,它应该连接到C server。而且,当客户端运行正常,甚至声明它发送了一系列比特时,C#server永远不会通过listener.Acceppt():,c#,c++,sockets,tcp,C#,C++,Sockets,Tcp,我从这里获取了服务器源: 我使用的客户端代码可以在这里找到: 我还检查了服务器和相应的,这工作得很好。我还检查了客户端的返回值,这看起来也很合理。所以我猜问题在于C++如何处理细节。 我试图通过Wireshark找到一些线索,但奇怪的是,在所使用的端口(11000)上完全没有任何通信的痕迹 我应该从哪里着手解决这个问题 更新:目前所有通信都只在本地运行。我尝试了我的IPAddress(从ipconfig)和127.0.0.1服务器和客户端 我只安装了一个网络适配器,我使用那个IP地址。客户端检查
ipconfig
)和127.0.0.1
服务器和客户端
我只安装了一个网络适配器,我使用那个IP地址。客户端检查
getaddrinfo(argv[1]、默认\u端口、提示和结果)
并返回有效信息(例如TCP as协议)connect()
返回0
,应该可以
更新2:
我尝试了不同的C++/C#服务器客户端设置组合:
- C++服务器,C++客户端:Works
- C++-服务器,C#客户端:工作正常
- C#-服务器,C#客户端:工作正常
- C++服务器,C++客户端:不工作
- C#-服务器:工作正常
tcp.port==11000
上显示任何流量,尽管它们确实有效(请参见更新2)。看起来Wireshark没有显示任何结果,因为一切都是局部的(请参见)我也遇到了同样的问题。
与winsock的连接是异步的。您使用的C#中的示例是同步的。
你必须使用异步的例子来获得与C++代码的通信。
我用了这两个例子
C夏普服务器
C plus客户端
Wh。。。什么?只是为了确定-您是说客户端连接正常并发送了数据,但服务器accept()从未返回?“尝试Wireshark查找一些提示,但奇怪的是,在使用的端口(11000)上绝对没有任何通信痕迹”-检查您的IP地址。。。您没有与您认为的服务器通信。我只安装了一个网络适配器,我使用该IP地址。客户端检查
getaddrinfo(argv[1]、默认\u端口、提示和结果)
并返回有效信息(例如TCP as协议)connect()
返回0
,这应该可以。如果客户端确实连接到您认为是的服务器,我想不出任何方法可以在客户端成功连接,而在服务器上不返回accept()。我尝试过更改一些小事情,例如更改服务器上的端口,但没有更改客户端:连接失败。将客户端端口更改为与服务器相同的值:连接成功…只需提供一些基本步骤,以确保您给出了正确的答案。
Console.WriteLine("Waiting for a connection...");
// Program is suspended while waiting for an incoming connection.
Socket handler = listener.Accept();