(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Socket.Receive-Methode (Byte[], Int32, Int32, SocketFlags, SocketError)

Empfängt Daten von einem gebundenen Socket in einem Empfangspuffer, wobei die angegebenen SocketFlags verwendet werden.

Namespace:  System.Net.Sockets
Assembly:  System (in System.dll)
public int Receive(
	byte[] buffer,
	int offset,
	int size,
	SocketFlags socketFlags,
	out SocketError errorCode
)

Parameter

buffer
Typ: System.Byte[]
Ein Array vom Typ Byte, das der Speicherort für die empfangenen Daten ist.
offset
Typ: System.Int32
Die Position im buffer-Parameter, an der die empfangenen Daten gespeichert werden sollen.
size
Typ: System.Int32
Die Anzahl der zu empfangenden Bytes.
socketFlags
Typ: System.Net.Sockets.SocketFlags
Eine bitweise Kombination der SocketFlags-Werte.
errorCode
Typ: System.Net.Sockets.SocketError
Ein SocketError-Objekt, in dem der Socketfehler gespeichert wird.

Rückgabewert

Typ: System.Int32
Die Anzahl der empfangenen Bytes.
AusnahmeBedingung
ArgumentNullException

buffer ist null.

ArgumentOutOfRangeException

offset ist kleiner als 0.

- oder -

offset ist größer als die Länge von buffer.

- oder -

size ist kleiner als 0.

- oder -

size ist größer als die Länge von buffer minus dem Wert des offset-Parameters.

SocketException

socketFlags ist keine gültige Kombination von Werten.

- oder -

Die LocalEndPoint-Eigenschaft ist nicht festgelegt.

- oder -

Beim Zugriff auf den Socket ist ein Fehler auf Betriebssystemebene aufgetreten.

ObjectDisposedException

Der Socket wurde geschlossen.

SecurityException

Ein Aufrufer in der Aufrufliste verfügt nicht über die erforderlichen Berechtigungen.

Die Receive-Methode liest Daten in den Pufferparameter und gibt die Anzahl der erfolgreich gelesenen Bytes zurück. Receive kann sowohl von verbindungsorientierten als auch von verbindungslosen Sockets aufgerufen werden.

Bei verbindungsorientierten Protokollen müssen Sie vor dem Aufruf von Receive entweder Connect aufrufen, um eine Verbindung mit dem Remotehost herzustellen, oder Accept, um eine eingehende Verbindung anzunehmen. Die Receive-Methode liest nur Daten, die von dem mit der Connect-Methode oder der Accept-Methode eingerichteten Remotehost eintreffen. Bei verbindungslosen Protokollen können Sie auch die ReceiveFrom-Methode verwenden. Mit ReceiveFrom können Sie Daten empfangen, die von jedem Host ankommen.

Wenn keine Daten zum Lesen verfügbar sind, wird die Receive-Methode blockiert, bis Daten verfügbar sind, sofern kein Timeoutwert mithilfe von Socket.ReceiveTimeout festgelegt wurde. Wenn der Timeoutwert überschritten wurde, löst der Aufruf von Receive eine SocketException aus. Wenn im nicht blockierenden Modus keine Daten im Protokollstapelpuffer vorhanden sind, wird die Receive-Methode sofort beendet, und diese löst eine SocketException aus. Fehler beim Zugriff auf den Socket. Weitere Informationen finden Sie unten im Abschnitt Hinweise. Mit der Available-Eigenschaft können Sie bestimmen, ob Daten zum Lesen verfügbar sind. Wenn Available ungleich 0 (null) ist, führen Sie den Empfangsvorgang erneut aus.

Bei einem verbindungsorientierten Socket liest die Receive-Methode alle verfügbaren Daten bis zu der Anzahl der Bytes, die im Größenparameter angegeben wurde. Wenn der Remotehost die Socket-Verbindung mit der Shutdown-Methode schließt und alle verfügbaren Daten empfangen wurden, wird die Receive-Methode sofort abgeschlossen, und diese gibt 0 (null) Bytes zurück.

Bei einem verbindungslosen Socket liest Receive das erste in der Warteschlange befindliche Datagramm von der Zieladresse, die mit der Connect-Methode angegeben wurde. Wenn Sie ein Datagramm empfangen, das die Größe des buffer-Parameters übersteigt, wird der buffer mit dem ersten Teil der Meldung gefüllt, die überzähligen Daten gehen verloren, und eine SocketException wird ausgelöst.

HinweisHinweis

Wenn Sie eine SocketException erhalten, können Sie mit der SocketException.ErrorCode-Eigenschaft den spezifischen Fehlercode abrufen. Nachdem Sie diesen Code abgerufen haben, finden Sie in der Dokumentation der MSDN Library zu API-Fehlercodes unter Windows Sockets, Version 2, eine ausführliche Beschreibung des Fehlers.

HinweisHinweis

Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung.

.NET Framework

Unterstützt in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.