Ich habe einen TcpClient, mit dem ich Daten an einen Listener auf einem Remotecomputer sende. Der Remotecomputer ist manchmal ein- und manchmal ausgeschaltet. Aus diesem Grund kann der TcpClient häufig keine Verbindung herstellen. Ich möchte, dass der TcpClient nach einer Sekunde eine Zeitüberschreitung aufweist. Daher dauert es nicht lange, bis keine Verbindung zum Remotecomputer hergestellt werden kann. Derzeit verwende ich diesen Code für den 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
}
Dies funktioniert gut genug, um die Aufgabe zu erledigen. Es sendet es, wenn es kann, und fängt die Ausnahme ab, wenn es keine Verbindung zum Remotecomputer herstellen kann. Wenn jedoch keine Verbindung hergestellt werden kann, dauert es zehn bis fünfzehn Sekunden, um die Ausnahme auszulösen. Ich brauche es, um in ungefähr einer Sekunde eine Auszeit zu nehmen. Wie würde ich die Auszeit ändern?