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