0

私は TcpClient を使用してソケットに接続しています。以下はサンプル コードです。ソケットに一度接続して接続セッション ID を保持し、有効なメッセージが見つかるまでソケットからメッセージを送受信し続けます。止まる:

// client is a global object to retain connection session id
TcpClient client = new TcpClient("127.0.0.1", 1800);

public void Connect()
{
    message = "First message"; // first message

    do 
    {
       Byte[] data = System.Text.Encoding.ASCII.GetBytes(message);         

       NetworkStream stream = client.GetStream();

       stream.Write(data, 0, data.Length);    

       data = new Byte[256];

       String responseData = String.Empty;

       Int32 bytes = stream.Read(data, 0, data.Length);
       responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);

    } while (message = "valid") // loop untill message is valid

    stream.Close();
    client.Close();
}

私の質問は、コードで TcpClient.ReceiveTimeout と TcpClient.SentTimeout 20 秒を効果的に使用するにはどうすればよいですか?

接続セッションIDを保持するために、TcpClient接続で正しいことをしていますか?

ありがとうございました。

4

0 に答える 0