网络通信的巨大延迟
本文关键字:延迟 巨大 网络通信 | 更新日期: 2023-09-27 18:21:22
我正在编写一个类似wcf的应用程序,客户端向具有id的服务器发送一些数据和一些数据包处理数据,服务器发送具有相同id的消息,我正在同一台计算机上测试客户端和服务器,我不使用localhost将服务器和客户端连接在一起,而是使用真实的ip地址,因此它实际上会打开一个套接字而不是环回(这是我听到的wat)。现在我得到了惊人的响应时间,500(.05ms)-1000(.1ms)滴答声用于:client-> server-> client
通信,现在我想从一台计算机到另一台计算机进行尝试,所以我在一台计算机上运行客户端,在另一台服务器上运行服务器,但现在通信时间增加了ALOT,我现在得到的时间从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);
这个问题似乎与附加的调试器有关,每当我在附加调试器的情况下运行程序时,我都会遇到奇怪且无法解释的延迟,当我作为一个优秀的程序单独运行时,我不会遇到任何延迟。