TcpClient를 사용하여 StreamWriter가 작성한 스트림을 통해 데이터를 보내는 데 문제가 있습니다.TcpClient 호스트 이름이 응답하지 않습니다.
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 주소가 아닌 호스트 이름을 사용해야하는 경우 다른 구현이 있습니까?
감사합니다.