0

我正在编写一个类似 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);
4

1 回答 1

0

这个问题似乎与附加的调试器有关,每当我运行带有附加调试器的程序时,我都会遇到奇怪且无法解释的延迟,当我将程序作为可执行文件单独运行时,我不会有任何延迟。

于 2016-08-15T07:42:46.013 回答