Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Socket.ReceiveTimeout-Eigenschaft

 

Veröffentlicht: Oktober 2016

Ruft ab oder legt einen Wert, der angibt, die Zeitdauer nach dem synchronen Receive Aufruf läuft.

Namespace:   System.Net.Sockets
Assembly:  System (in System.dll)

public int ReceiveTimeout { get; set; }

Eigenschaftswert

Type: System.Int32

Der Timeoutwert in Millisekunden. Der Standardwert ist 0 (null) und gibt ein unendliches Timeout an. Angeben von-1 wird ebenfalls ein unendliches Timeout.

Exception Condition
SocketException

Fehler beim Versuch, auf den Socket zuzugreifen.

ObjectDisposedException

Der Socket wurde geschlossen.

ArgumentOutOfRangeException

Der für eine Set-Operation angegebene Wert ist kleiner als -1.

Diese Option gilt für synchrone Receive nur aufruft. Wenn das Timeoutintervall überschritten wird, die Receive Methode löst eine SocketException.

Das folgende Codebeispiel veranschaulicht die Verwendung der ReceiveTimeout Eigenschaft.

static void ConfigureTcpSocket(Socket tcpSocket)
{
	// Don't allow another socket to bind to this port.
	tcpSocket.ExclusiveAddressUse = true;

	// The socket will linger for 10 seconds after 
                      // Socket.Close is called.
	tcpSocket.LingerState = new LingerOption (true, 10);

	// Disable the Nagle Algorithm for this tcp socket.
	tcpSocket.NoDelay = true;

	// Set the receive buffer size to 8k
	tcpSocket.ReceiveBufferSize = 8192;

	// Set the timeout for synchronous receive methods to 
	// 1 second (1000 milliseconds.)
	tcpSocket.ReceiveTimeout = 1000;

	// Set the send buffer size to 8k.
	tcpSocket.SendBufferSize = 8192;

	// Set the timeout for synchronous send methods
	// to 1 second (1000 milliseconds.)			
	tcpSocket.SendTimeout = 1000;

	// Set the Time To Live (TTL) to 42 router hops.
	tcpSocket.Ttl = 42;

	Console.WriteLine("Tcp Socket configured:");

	Console.WriteLine("  ExclusiveAddressUse {0}", 
				tcpSocket.ExclusiveAddressUse);

	Console.WriteLine("  LingerState {0}, {1}", 
			     tcpSocket.LingerState.Enabled, 
		             tcpSocket.LingerState.LingerTime);

	Console.WriteLine("  NoDelay {0}", 
                                              tcpSocket.NoDelay);

	Console.WriteLine("  ReceiveBufferSize {0}", 
				tcpSocket.ReceiveBufferSize);

	Console.WriteLine("  ReceiveTimeout {0}", 
				tcpSocket.ReceiveTimeout);

	Console.WriteLine("  SendBufferSize {0}", 
				tcpSocket.SendBufferSize);

	Console.WriteLine("  SendTimeout {0}", 
                                              tcpSocket.SendTimeout);

	Console.WriteLine("  Ttl {0}", 
                                              tcpSocket.Ttl);

                      Console.WriteLine("  IsBound {0}", 
                                              tcpSocket.IsBound);

	Console.WriteLine("");
}

.NET Framework
Verfügbar seit 2.0
Zurück zum Anfang
Anzeigen: