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