私は 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接続で正しいことをしていますか?
ありがとうございました。