我正在写一个类似wcf的应用程序,一个客户端用一个id和一些数据包处理数据向服务器发送一些数据,服务器用相同的id发回一条消息,我在同一台计算机上测试客户端和服务器,我不是使用本地主机将服务器和客户端连接在一起,而是使用真实的ip地址,所以它实际上会打开一个套接字而不是环回(这是我听说过的)。现在我得到了惊人的响应时间,500(.05ms)-1000(.1ms)滴答:client-> server-> client通信,现在我想尝试从一台计算机到另一台计算机,所以我在一台计算机上运行客户端,在另一台计算机上运行服务器,但现在通信时间增加了很多,我现在得到的时间从250000(25ms)到350000(35ms),为什么会发生这种情况?我尝试使用调试器来查找任何延迟,但实际上在套接字通信中只得到了很多延迟
这是服务器套接字的初始化:
IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse(LocalIpAddress), port);
Listener = new Socket(localEndPoint.Address.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
Listener.Bind(localEndPoint);
Listener.LingerState = new LingerOption(false, 0);
Listener.Listen(0);这是客户端套接字的初始化:
ClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
ClientSocket.ReceiveBufferSize = buffer.Length;
ClientSocket.LingerState = new LingerOption(false, 0);发布于 2016-08-15 15:42:46
这个问题似乎与附加的调试器有关,每当我在附加调试器的情况下运行程序时,我得到奇怪的和无法解释的延迟,当我作为可执行文件独立运行程序时,我没有得到任何延迟。
https://stackoverflow.com/questions/17523554
复制相似问题