我正在编写一个类似 wcf 的应用程序,客户端将一些数据发送到具有 id 和一些数据包处理数据的服务器,然后服务器用相同的 id 发回一条消息,我正在同一台计算机上测试客户端和服务器,我是不使用 localhost 将服务器和客户端连接在一起,而是使用真实的 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);