У меня есть TcpClient, который я использую для отправки данных слушателю на удаленном компьютере. Удаленный компьютер иногда включается и иногда выключается. Из-за этого TcpClient не сможет подключаться часто. Я хочу, чтобы TcpClient перегрелся через одну секунду, поэтому не требуется много времени, когда он не может подключиться к удаленному компьютеру. В настоящее время я использую этот код для 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
}
Это работает достаточно хорошо для обработки задачи. Он отправляет его, если может, и получает исключение, если он не может подключиться к удаленному компьютеру. Однако, когда он не может подключиться, для исключения исключения требуется от десяти до пятнадцати секунд. Мне нужно это, чтобы тайм-аут в течение одной секунды? Как изменить время ожидания?