원격 컴퓨터의 수신기에 데이터를 보내는 데 사용하는 TcpClient가 있습니다. 원격 컴퓨터는 때때로 켜져 있고 때로는 꺼집니다. 이로 인해 TcpClient가 자주 연결되지 않습니다. TcpClient가 1 초 후에 시간 초과되기를 원하므로 원격 컴퓨터에 연결할 수 없을 때 시간이 많이 걸리지 않습니다. 현재 TcpClient에이 코드를 사용합니다.
try
{
TcpClient client = new TcpClient("remotehost", this.Port);
client.SendTimeout = 1000;
Byte[] data = System.Text.Encoding.Unicode.GetBytes(this.Message);
NetworkStream stream = client.GetStream();
stream.Write(data, 0, data.Length);
data = new Byte[512];
Int32 bytes = stream.Read(data, 0, data.Length);
this.Response = System.Text.Encoding.Unicode.GetString(data, 0, bytes);
stream.Close();
client.Close();
FireSentEvent(); //Notifies of success
}
catch (Exception ex)
{
FireFailedEvent(ex); //Notifies of failure
}
이것은 작업을 처리하기에 충분합니다. 가능한 경우 전송하고 원격 컴퓨터에 연결할 수없는 경우 예외를 포착합니다. 그러나 연결할 수없는 경우 예외가 발생하는 데 10 ~ 15 초가 걸립니다. 약 1 초 후에 타임 아웃해야합니까? 타임 아웃 시간은 어떻게 변경합니까?