Come impostare il timeout per un TcpClient?

Ho un TcpClient che uso per inviare dati a un listener su un computer remoto. Il computer remoto a volte si accende e talvolta si spegne. Per questo motivo, TcpClient non riesce a connettersi spesso. Voglio che il TcpClient scada dopo un secondo, quindi non ci vuole molto tempo quando non riesce a connettersi al computer remoto. Attualmente, utilizzo questo codice per 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 } 

Questo funziona abbastanza bene per la gestione del compito. Lo invia se ansible e rileva l’eccezione se non riesce a connettersi al computer remoto. Tuttavia, quando non riesce a connettersi, occorrono da dieci a quindici secondi per generare un’eccezione. Ho bisogno che scada tra un secondo circa? Come cambierei il time out?