C++;客户端仅与本地主机C#服务器一起工作 我正在使用Windows服务和C++服务器的C++应用程序。 通过本地主机测试,一切都很好,但对于virtualbox系统或相同的网络计算机,一切都不起作用。 我禁用了windows防火墙和防病毒软件。 以下是我的C#服务器最重要的代码: IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName()); IPAddress ipAddress = IPAddress.Parse("192.168.1.2"); IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 8517); tcpListener = new TcpListener(localEndPoint); tcpListener.Start(); tcpListenerThread = new Thread(listenerSocket); tcpListenerThread.Start(); } static void listenerSocket() { while (true) { try { Socket client = tcpListener.AcceptSocket(); clientSockets.Add(client); } catch (Exception exc) { return; } } } p>这里是我的C++客户端最重要的代码(根据C++ socket客户端的MSDN实例):
使用localhost,它可以工作,并且我的客户端和服务器位于同一ip上,但具有不同的端口。 使用不同的IP时,我遇到了服务器无法“听到”客户端的情况。 我的日志如下所示:C++;客户端仅与本地主机C#服务器一起工作 我正在使用Windows服务和C++服务器的C++应用程序。 通过本地主机测试,一切都很好,但对于virtualbox系统或相同的网络计算机,一切都不起作用。 我禁用了windows防火墙和防病毒软件。 以下是我的C#服务器最重要的代码: IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName()); IPAddress ipAddress = IPAddress.Parse("192.168.1.2"); IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 8517); tcpListener = new TcpListener(localEndPoint); tcpListener.Start(); tcpListenerThread = new Thread(listenerSocket); tcpListenerThread.Start(); } static void listenerSocket() { while (true) { try { Socket client = tcpListener.AcceptSocket(); clientSockets.Add(client); } catch (Exception exc) { return; } } } p>这里是我的C++客户端最重要的代码(根据C++ socket客户端的MSDN实例):,c#,c++,sockets,C#,C++,Sockets,使用localhost,它可以工作,并且我的客户端和服务器位于同一ip上,但具有不同的端口。 使用不同的IP时,我遇到了服务器无法“听到”客户端的情况。 我的日志如下所示: 2017-03-31 18:01:30 Settings readed: server IP = 192.168.1.2, server port = 8517- 2017-03-31 18:01:30 WSAStartup success -
2017-03-31 18:01:30 Settings readed: server IP = 192.168.1.2, server port = 8517-
2017-03-31 18:01:30 WSAStartup success -
2017-03-31 18:01:30 Creating socket for connecting to server success-
2017-03-31 18:01:31 Unable to connect to server-
我真的很感激任何帮助我坚持了这几乎一个星期。
我可以在客户端pc上添加ping到服务器ip工作明显的问题:防火墙(客户端和服务器,而不仅仅是服务器)?是的,我在客户端和服务器防火墙和抗病毒上都禁用了。我建议对该ip地址进行跟踪,检查数据包是否在那里生成,然后可能运行另一个简单的服务器(例如telnet服务器或其他)在您尝试使用和检查的端口上,您可以从连接的机器访问它。如果一切正常,那么我会重新查看代码,但在C端,它肯定会正常工作。我建议您调用
WSAGetLastError
以了解实际发生的错误。对于不运行服务器的情况,我得到的错误==183,如果运行服务器,我得到的错误相同/
2017-03-31 18:01:30 Settings readed: server IP = 192.168.1.2, server port = 8517-
2017-03-31 18:01:30 WSAStartup success -
2017-03-31 18:01:30 Creating socket for connecting to server success-
2017-03-31 18:01:31 Unable to connect to server-