Freigeben über


Socket.ReceiveBufferSize Eigenschaft

Definition

Dient zum Abrufen oder Festlegen eines Werts, der die Größe des Empfangspuffers des .Socket

public:
 property int ReceiveBufferSize { int get(); void set(int value); };
public int ReceiveBufferSize { get; set; }
member this.ReceiveBufferSize : int with get, set
Public Property ReceiveBufferSize As Integer

Eigenschaftswert

Eine Int32 , die die Größe des Empfangspuffers in Byte enthält. Der Standardwert hängt vom Betriebssystem ab.

Ausnahmen

Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.

Das Socket wurde geschlossen.

Der für einen Set-Vorgang angegebene Wert ist kleiner als 0.

Beispiele

Im folgenden Codebeispiel wird die Verwendung der ReceiveBufferSize Eigenschaft veranschaulicht.

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 {tcpSocket.ExclusiveAddressUse}");

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

    Console.WriteLine($"  NoDelay {tcpSocket.NoDelay}");

    Console.WriteLine($"  ReceiveBufferSize {tcpSocket.ReceiveBufferSize}");

    Console.WriteLine($"  ReceiveTimeout {tcpSocket.ReceiveTimeout}");

    Console.WriteLine($"  SendBufferSize {tcpSocket.SendBufferSize}");

    Console.WriteLine($"  SendTimeout {tcpSocket.SendTimeout}");

    Console.WriteLine($"  Ttl {tcpSocket.Ttl}");

    Console.WriteLine($"  IsBound {tcpSocket.IsBound}");

    Console.WriteLine("");
}

Hinweise

Eine größere Puffergröße reduziert möglicherweise die Anzahl leerer Bestätigungen (TCP-Pakete ohne Datenteil), kann aber auch die Erkennung von Verbindungsproblemen verzögern. Erwägen Sie, die Puffergröße zu erhöhen, wenn Sie große Dateien übertragen oder eine hohe Bandbreite, hohe Latenzverbindung (z. B. einen Satelliten-Breitbandanbieter) verwenden.)

Gilt für: