2

C#でパーサーを書いています。でパケットを送受信しmax length = 100ます。ただし、各パケットの後の (受信と送信の間の) 時間は 2 秒以上です。それが私の実装の問題なのか、gprs側の問題なのかわかりません。

サーバーのリッスン:

tcpListener = new TcpListener(IPAddress.Any, Names.comPort);
tcpListener.Server.NoDelay = true;

while (true)
{
    TcpClient client = tcpListener.AcceptTcpClient();

    Thread th = new Thread(new ParameterizedThreadStart(HandleComm));
    th.IsBackground = true;
    th.start(client);
}

データの受信を開始します:

HandleComm(object client)
{
 NetworkStream clientStream = ((TcpClient)client).GetStream();

 while (true)
 {
     try { bytesRead = clientStream.Read(buffer, 0, 200);}
     catch(Exception ex) {break;}        
 }
}

これは単純な実装です。最初のデータ パケットの bytesRead を受信した瞬間は、2 番目のデータ パケットと比較して約 2 秒です。遅すぎると思います。受信時間を増やすにはどうすればよいですか?データを受信して​​返信した後、すでに確認しましたが、1ミリ秒しかかかりませんでした。

送信部分の追加:

socket.NoDelay = true;
socket.SendTimeout = 200; // minimum time out
socket.SendBufferSize = bytes.Length;

socket.Send(bytes, SocketFlags.DontRoute);
4

0 に答える 0