C#-服务器/C++;客户端:Socket.Accept()永远不会完成 我正在编写一个简单的C++客户端,它应该连接到C server。而且,当客户端运行正常,甚至声明它发送了一系列比特时,C#server永远不会通过listener.Acceppt():

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地址。客户端检查

我从这里获取了服务器源:

我使用的客户端代码可以在这里找到:

我还检查了服务器和相应的,这工作得很好。我还检查了客户端的返回值,这看起来也很合理。所以我猜问题在于C++如何处理细节。 我试图通过Wireshark找到一些线索,但奇怪的是,在所使用的端口(11000)上完全没有任何通信的痕迹

我应该从哪里着手解决这个问题

更新:目前所有通信都只在本地运行。我尝试了我的IPAddress(从
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#-服务器:工作正常
更新3:我在其他服务器客户机星座上尝试了Wireshark,但它们都没有在
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();