TcpClient を使用して、StreamWriter によって書き込まれたストリームを介してデータを送信する際に問題が発生しています。
private void sendMessage(string[] hostlist, string message)
{
foreach (string host in hostlist)
{
try
{
messageClient = new TcpClient(host, 24300);
StreamWriter writer = new StreamWriter(messageClient.GetStream());
writer.Write(message);
writer.Flush();
}
catch (Exception)
{
MessageBox.Show("Error 1\n" +
"This may be due to two things:\n" +
"1. The hostname is invalid.\n" +
"2. The destination computer is not online.",
"Error Sending Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
問題の行は、messageClient が初期化される場所です。IP アドレスを使用すると、ハングはまったくなく、メッセージは即座に送受信されます。ただし、「lappy」(ラップトップの名前)などのホスト名を使用すると、プログラムは正確に 6 秒間完全にハングし、メッセージを送信します。これは、ホスト名を使用してメッセージを送信しようとするたびに発生します。ここで私が間違っていることはありますか?IP アドレスではなくホスト名を使用する必要がある場合、別の実装はありますか?
ありがとう。