Socket.BeginSend Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Sendet Daten asynchron an einen verbundenen Socket.
Überlädt
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) |
Sendet Daten asynchron an einen verbundenen Socket. |
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) |
Sendet Daten asynchron an einen verbundenen Socket. |
BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) |
Sendet Daten asynchron an einen verbundenen Socket. |
BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) |
Sendet Daten asynchron an einen verbundenen Socket. |
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Sendet Daten asynchron an einen verbundenen Socket.
public:
IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- buffers
- IList<ArraySegment<Byte>>
Ein Array vom Typ Byte, das die zu sendenden Daten enthält.
- socketFlags
- SocketFlags
Eine bitweise Kombination der SocketFlags-Werte.
- callback
- AsyncCallback
Der AsyncCallback-Delegat.
- state
- Object
Ein Objekt mit Zustandsinformationen für diese Anforderung.
Gibt zurück
Ein IAsyncResult, das auf den asynchronen Sendevorgang verweist.
Ausnahmen
buffers
ist null
.
buffers
ist leer.
nur .NET Framework und .NET 5 und früher: Fehler beim Versuch, auf den Socket zuzugreifen. Weitere Informationen finden Sie unten im Abschnitt Hinweise.
Der Socket wurde geschlossen.
Hinweise
Wichtig
Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin*
und End*
) für neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task
-basierten Entsprechungen.
Sie können einen Rückruf übergeben, der implementiert wird, BeginSend um über den Abschluss des Vorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass der Rückruf während des Aufrufs BeginSendvon inline ausgeführt wird, wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abschließt. In diesem Fall wird die CompletedSynchronously Eigenschaft für die zurückgegebene IAsyncResult auf true
festgelegt, um anzugeben, dass die Methode synchron abgeschlossen wurde. Verwenden Sie die AsyncState -Eigenschaft von, IAsyncResult um das an die -Methode übergebene Zustandsobjekt BeginSend abzurufen.
Der asynchrone BeginSend Vorgang muss durch Aufrufen der EndSend -Methode abgeschlossen werden. In der Regel wird die -Methode vom AsyncCallback Delegaten aufgerufen. EndSend blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.
Obwohl für verbindungsorientierte Protokolle vorgesehen, BeginSend funktioniert sie auch für verbindungslose Protokolle, vorausgesetzt, Sie rufen zuerst die Connect -Methode oder auf, BeginConnect um einen Standard-Remotehost einzurichten. Wenn Sie ein verbindungsloses Protokoll verwenden und planen, Daten an mehrere verschiedene Hosts zu senden, sollten Sie verwenden BeginSendTo. Die Verwendung BeginSendTo ist auch dann in Ordnung, wenn Sie einen Standard-Remotehost mit Connecteingerichtet haben. Sie können den Standard-Remotehost auch vor dem Aufrufen BeginSend ändern, indem Sie einen weiteren Aufruf von Connect oder BeginConnectausführen. Bei verbindungslosen Protokollen müssen Sie außerdem sicherstellen, dass die Größe Ihres Puffers die maximale Paketgröße des zugrunde liegenden Dienstanbieters nicht überschreitet. Wenn dies der Fall ist, wird das Datagramm nicht gesendet und BeginSend löst einen aus SocketException.
Wenn Sie das DontRoute Flag als socketflags
Parameter angeben, werden die gesendeten Daten nicht weitergeleitet.
Hinweis
Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.
Hinweis
Alle von einem bestimmten Thread initiierten E/A-Vorgänge werden abgebrochen, wenn dieser Thread beendet wird. Ein ausstehender asynchroner Vorgang kann fehlschlagen, wenn der Thread beendet wird, bevor der Vorgang abgeschlossen ist.
Hinweis
state
ist eine Instanziierung einer benutzerdefinierten Klasse.
Hinweis
Der erfolgreiche Abschluss eines Sendevorgangs bedeutet nicht, dass die Daten erfolgreich übermittelt wurden. Wenn im Transportsystem kein Pufferspeicher zur Verfügung steht, um die zu übertragenden Daten aufzunehmen, wird das Senden blockiert, es sei denn, der Socket wurde in den Nichtblockierungsmodus versetzt.
Hinweis
Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.
Hinweis
Der Ausführungskontext (der Sicherheitskontext, der identitätswechselte Benutzer und der aufrufende Kontext) wird für die asynchronen Socket Methoden zwischengespeichert. Nach der ersten Verwendung eines bestimmten Kontexts (einer bestimmten asynchronen Socket Methode, einer bestimmten Socket instance und einem bestimmten Rückruf) wird bei der nachfolgenden Verwendung dieses Kontexts eine Leistungsverbesserung angezeigt.
Weitere Informationen
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshalling von Delegaten als Rückrufmethode
- Asynchrone Clientsockets - Beispiel
- Asynchroner Serversocket, Beispiel
Gilt für:
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Sendet Daten asynchron an einen verbundenen Socket.
public:
IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- buffers
- IList<ArraySegment<Byte>>
Ein Array vom Typ Byte, das die zu sendenden Daten enthält.
- socketFlags
- SocketFlags
Eine bitweise Kombination der SocketFlags-Werte.
- errorCode
- SocketError
Ein SocketError-Objekt, in dem der Socketfehler gespeichert wird.
- callback
- AsyncCallback
Der AsyncCallback-Delegat.
- state
- Object
Ein Objekt mit Zustandsinformationen für diese Anforderung.
Gibt zurück
Ein IAsyncResult, das auf den asynchronen Sendevorgang verweist.
Ausnahmen
buffers
ist null
.
buffers
ist leer.
nur .NET Framework und .NET 5 und früher: Fehler beim Versuch, auf den Socket zuzugreifen. Weitere Informationen finden Sie unten im Abschnitt Hinweise.
Der Socket wurde geschlossen.
Hinweise
Wichtig
Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin*
und End*
) für neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task
-basierten Entsprechungen.
Sie können einen Rückruf übergeben, der implementiert wird, BeginSend um über den Abschluss des Vorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass der Rückruf während des Aufrufs BeginSendvon inline ausgeführt wird, wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abschließt. In diesem Fall wird die CompletedSynchronously Eigenschaft für die zurückgegebene IAsyncResult auf true
festgelegt, um anzugeben, dass die Methode synchron abgeschlossen wurde. Verwenden Sie die AsyncState -Eigenschaft von, IAsyncResult um das an die -Methode übergebene Zustandsobjekt BeginSend abzurufen.
Der asynchrone BeginSend Vorgang muss durch Aufrufen der EndSend -Methode abgeschlossen werden. In der Regel wird die -Methode vom AsyncCallback Delegaten aufgerufen. EndSend blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.
Obwohl für verbindungsorientierte Protokolle vorgesehen, BeginSend funktioniert sie auch für verbindungslose Protokolle, vorausgesetzt, Sie rufen zuerst die Connect -Methode oder auf, BeginConnect um einen Standard-Remotehost einzurichten. Wenn Sie ein verbindungsloses Protokoll verwenden und planen, Daten an mehrere verschiedene Hosts zu senden, sollten Sie verwenden BeginSendTo. Die Verwendung BeginSendTo ist auch dann in Ordnung, wenn Sie einen Standard-Remotehost mit Connecteingerichtet haben. Sie können den Standard-Remotehost auch vor dem Aufrufen BeginSend ändern, indem Sie einen weiteren Aufruf von Connect oder BeginConnectausführen. Bei verbindungslosen Protokollen müssen Sie außerdem sicherstellen, dass die Größe Ihres Puffers die maximale Paketgröße des zugrunde liegenden Dienstanbieters nicht überschreitet. Wenn dies der Fall ist, wird das Datagramm nicht gesendet und BeginSend löst einen aus SocketException.
Wenn Sie das DontRoute Flag als socketflags
Parameter angeben, werden die gesendeten Daten nicht weitergeleitet.
Hinweis
Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.
Hinweis
Alle von einem bestimmten Thread initiierten E/A-Vorgänge werden abgebrochen, wenn dieser Thread beendet wird. Ein ausstehender asynchroner Vorgang kann fehlschlagen, wenn der Thread beendet wird, bevor der Vorgang abgeschlossen ist.
Hinweis
state
ist eine Instanziierung einer benutzerdefinierten Klasse.
Hinweis
Der erfolgreiche Abschluss eines Sendevorgangs bedeutet nicht, dass die Daten erfolgreich übermittelt wurden. Wenn im Transportsystem kein Pufferspeicher zur Verfügung steht, um die zu übertragenden Daten aufzunehmen, wird das Senden blockiert, es sei denn, der Socket wurde in den Nichtblockierungsmodus versetzt.
Hinweis
Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.
Hinweis
Der Ausführungskontext (der Sicherheitskontext, der identitätswechselte Benutzer und der aufrufende Kontext) wird für die asynchronen Socket Methoden zwischengespeichert. Nach der ersten Verwendung eines bestimmten Kontexts (einer bestimmten asynchronen Socket Methode, einer bestimmten Socket instance und einem bestimmten Rückruf) wird bei der nachfolgenden Verwendung dieses Kontexts eine Leistungsverbesserung angezeigt.
Weitere Informationen
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshalling von Delegaten als Rückrufmethode
- Asynchrone Clientsockets - Beispiel
- Asynchroner Serversocket, Beispiel
Gilt für:
BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Sendet Daten asynchron an einen verbundenen Socket.
public:
IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- offset
- Int32
Die nullbasierte Position im buffer
-Parameter, an der mit dem Senden der Daten begonnen werden soll.
- size
- Int32
Die Anzahl von Bytes, die gesendet werden sollen.
- socketFlags
- SocketFlags
Eine bitweise Kombination der SocketFlags-Werte.
- callback
- AsyncCallback
Der AsyncCallback-Delegat.
- state
- Object
Ein Objekt mit Zustandsinformationen für diese Anforderung.
Gibt zurück
Ein IAsyncResult, das auf den asynchronen Sendevorgang verweist.
Ausnahmen
buffer
ist null
nur .NET Framework und .NET 5 und früher: Fehler beim Versuch, auf den Socket zuzugreifen. Weitere Informationen finden Sie unten im Abschnitt Hinweise.
offset
ist kleiner als 0.
- oder -
offset
ist kleiner 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.
Der Socket wurde geschlossen.
Hinweise
Wichtig
Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin*
und End*
) für neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task
-basierten Entsprechungen.
Sie können einen Rückruf übergeben, der implementiert wird, BeginSend um über den Abschluss des Vorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass der Rückruf während des Aufrufs BeginSendvon inline ausgeführt wird, wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abschließt. In diesem Fall wird die CompletedSynchronously Eigenschaft für die zurückgegebene IAsyncResult auf true
festgelegt, um anzugeben, dass die Methode synchron abgeschlossen wurde. Verwenden Sie die AsyncState -Eigenschaft von, IAsyncResult um das an die -Methode übergebene Zustandsobjekt BeginSend abzurufen.
Der asynchrone BeginSend Vorgang muss durch Aufrufen der EndSend -Methode abgeschlossen werden. In der Regel wird die -Methode vom AsyncCallback Delegaten aufgerufen. EndSend blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.
Obwohl für verbindungsorientierte Protokolle vorgesehen, BeginSend funktioniert sie auch für verbindungslose Protokolle, vorausgesetzt, Sie rufen zuerst die Connect -Methode oder auf, BeginConnect um einen Standard-Remotehost einzurichten. Wenn Sie ein verbindungsloses Protokoll verwenden und planen, Daten an mehrere verschiedene Hosts zu senden, sollten Sie verwenden BeginSendTo. Die Verwendung BeginSendTo ist auch dann in Ordnung, wenn Sie einen Standard-Remotehost mit Connecteingerichtet haben. Sie können den Standard-Remotehost auch vor dem Aufrufen BeginSend ändern, indem Sie einen weiteren Aufruf von Connect oder BeginConnectausführen. Bei verbindungslosen Protokollen müssen Sie außerdem sicherstellen, dass die Größe Ihres Puffers die maximale Paketgröße des zugrunde liegenden Dienstanbieters nicht überschreitet. Wenn dies der Fall ist, wird das Datagramm nicht gesendet und BeginSend löst einen aus SocketException.
Wenn Sie das DontRoute Flag als socketflags
Parameter angeben, werden die gesendeten Daten nicht weitergeleitet.
Hinweis
Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.
Hinweis
Alle von einem bestimmten Thread initiierten E/A-Vorgänge werden abgebrochen, wenn dieser Thread beendet wird. Ein ausstehender asynchroner Vorgang kann fehlschlagen, wenn der Thread beendet wird, bevor der Vorgang abgeschlossen ist.
Hinweis
state
ist eine Instanziierung einer benutzerdefinierten Klasse.
Hinweis
Der erfolgreiche Abschluss eines Sendevorgangs bedeutet nicht, dass die Daten erfolgreich übermittelt wurden. Wenn im Transportsystem kein Pufferspeicher zur Verfügung steht, um die zu übertragenden Daten aufzunehmen, wird das Senden blockiert, es sei denn, der Socket wurde in den Nichtblockierungsmodus versetzt.
Hinweis
Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.
Hinweis
Der Ausführungskontext (der Sicherheitskontext, der identitätswechselte Benutzer und der aufrufende Kontext) wird für die asynchronen Socket Methoden zwischengespeichert. Nach der ersten Verwendung eines bestimmten Kontexts (einer bestimmten asynchronen Socket Methode, einer bestimmten Socket instance und einem bestimmten Rückruf) wird bei der nachfolgenden Verwendung dieses Kontexts eine Leistungsverbesserung angezeigt.
Weitere Informationen
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshalling von Delegaten als Rückrufmethode
- Asynchrone Clientsockets - Beispiel
- Asynchroner Serversocket, Beispiel
Gilt für:
BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Sendet Daten asynchron an einen verbundenen Socket.
public:
IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- offset
- Int32
Die nullbasierte Position im buffer
-Parameter, an der mit dem Senden der Daten begonnen werden soll.
- size
- Int32
Die Anzahl von Bytes, die gesendet werden sollen.
- socketFlags
- SocketFlags
Eine bitweise Kombination der SocketFlags-Werte.
- errorCode
- SocketError
Ein SocketError-Objekt, in dem der Socketfehler gespeichert wird.
- callback
- AsyncCallback
Der AsyncCallback-Delegat.
- state
- Object
Ein Objekt mit Zustandsinformationen für diese Anforderung.
Gibt zurück
Ein IAsyncResult, das auf den asynchronen Sendevorgang verweist.
Ausnahmen
buffer
ist null
nur .NET Framework und .NET 5 und früher: Fehler beim Versuch, auf den Socket zuzugreifen. Weitere Informationen finden Sie unten im Abschnitt Hinweise.
offset
ist kleiner als 0.
- oder -
offset
ist kleiner 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.
Der Socket wurde geschlossen.
Hinweise
Wichtig
Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin*
und End*
) für neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task
-basierten Entsprechungen.
Sie können einen Rückruf übergeben, der implementiert wird, BeginSend um über den Abschluss des Vorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass der Rückruf während des Aufrufs BeginSendvon inline ausgeführt wird, wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abschließt. In diesem Fall wird die CompletedSynchronously Eigenschaft für die zurückgegebene IAsyncResult auf true
festgelegt, um anzugeben, dass die Methode synchron abgeschlossen wurde. Verwenden Sie die AsyncState -Eigenschaft von, IAsyncResult um das an die -Methode übergebene Zustandsobjekt BeginSend abzurufen.
Der asynchrone BeginSend Vorgang muss durch Aufrufen der EndSend -Methode abgeschlossen werden. In der Regel wird die -Methode vom AsyncCallback Delegaten aufgerufen. EndSend blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.
Obwohl für verbindungsorientierte Protokolle vorgesehen, BeginSend funktioniert sie auch für verbindungslose Protokolle, vorausgesetzt, Sie rufen zuerst die Connect -Methode oder auf, BeginConnect um einen Standard-Remotehost einzurichten. Wenn Sie ein verbindungsloses Protokoll verwenden und planen, Daten an mehrere verschiedene Hosts zu senden, sollten Sie verwenden BeginSendTo. Die Verwendung BeginSendTo ist auch dann in Ordnung, wenn Sie einen Standard-Remotehost mit Connecteingerichtet haben. Sie können den Standard-Remotehost auch vor dem Aufrufen BeginSend ändern, indem Sie einen weiteren Aufruf von Connect oder BeginConnectausführen. Bei verbindungslosen Protokollen müssen Sie außerdem sicherstellen, dass die Größe Ihres Puffers die maximale Paketgröße des zugrunde liegenden Dienstanbieters nicht überschreitet. Wenn dies der Fall ist, wird das Datagramm nicht gesendet und BeginSend löst einen aus SocketException.
Wenn Sie das DontRoute Flag als socketflags
Parameter angeben, werden die gesendeten Daten nicht weitergeleitet.
Hinweis
Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.
Hinweis
Alle von einem bestimmten Thread initiierten E/A-Vorgänge werden abgebrochen, wenn dieser Thread beendet wird. Ein ausstehender asynchroner Vorgang kann fehlschlagen, wenn der Thread beendet wird, bevor der Vorgang abgeschlossen ist.
Hinweis
state
ist eine Instanziierung einer benutzerdefinierten Klasse.
Hinweis
Der erfolgreiche Abschluss eines Sendevorgangs gibt nicht an, dass die Daten erfolgreich übermittelt wurden. Wenn im Transportsystem kein Pufferspeicher zur Verfügung steht, um die zu übertragenden Daten aufzunehmen, wird send blockiert, es sei denn, der Socket wurde in den Nichtblockierungsmodus versetzt.
Hinweis
Dieser Member gibt Ablaufverfolgungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in der Anwendung aktivieren. Weitere Informationen finden Sie unter Netzwerkablaufverfolgung in .NET Framework.
Hinweis
Der Ausführungskontext (der Sicherheitskontext, der identitätswechselte Benutzer und der aufrufende Kontext) wird für die asynchronen Socket Methoden zwischengespeichert. Nach der ersten Verwendung eines bestimmten Kontexts (einer bestimmten asynchronen Socket Methode, einer bestimmten Socket instance und einem bestimmten Rückruf) wird bei nachfolgenden Verwendungen dieses Kontexts eine Leistungsverbesserung angezeigt.
Weitere Informationen
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshalling von Delegaten als Rückrufmethode
- Asynchrone Clientsockets - Beispiel
- Asynchroner Serversocket, Beispiel