Socket.BeginConnect 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.
Startet eine asynchrone Anforderung für eine Remotehostverbindung.
Überlädt
| Name | Beschreibung |
|---|---|
| BeginConnect(EndPoint, AsyncCallback, Object) |
Startet eine asynchrone Anforderung für eine Remotehostverbindung. |
| BeginConnect(IPAddress, Int32, AsyncCallback, Object) |
Startet eine asynchrone Anforderung für eine Remotehostverbindung. Der Host wird durch eine IPAddress Portnummer und eine Portnummer angegeben. |
| BeginConnect(IPAddress[], Int32, AsyncCallback, Object) |
Startet eine asynchrone Anforderung für eine Remotehostverbindung. Der Host wird durch ein IPAddress Array und eine Portnummer angegeben. |
| BeginConnect(String, Int32, AsyncCallback, Object) |
Startet eine asynchrone Anforderung für eine Remotehostverbindung. Der Host wird durch einen Hostnamen und eine Portnummer angegeben. |
BeginConnect(EndPoint, AsyncCallback, Object)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Startet eine asynchrone Anforderung für eine Remotehostverbindung.
public:
IAsyncResult ^ BeginConnect(System::Net::EndPoint ^ remoteEP, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginConnect(System.Net.EndPoint remoteEP, AsyncCallback? callback, object? state);
public IAsyncResult BeginConnect(System.Net.EndPoint remoteEP, AsyncCallback callback, object state);
member this.BeginConnect : System.Net.EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (remoteEP As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- callback
- AsyncCallback
Die AsyncCallback Stellvertretung.
- state
- Object
Ein Objekt, das Statusinformationen für diese Anforderung enthält.
Gibt zurück
Ein IAsyncResult Verweis auf die asynchrone Verbindung.
Ausnahmen
remoteEP ist null.
.NET Framework und .NET 5 und früher: Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.
Das Socket wurde geschlossen.
Ein aufrufer höher im Aufrufstapel verfügt nicht über die Berechtigung für den angeforderten Vorgang.
Der Socket Zustand wurde durch Aufrufen Listen(Int32)in einen Überwachungszustand versetzt, oder ein asynchroner Vorgang wird bereits ausgeführt.
Hinweise
Von Bedeutung
Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für die neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.
Verbindungsorientierte Protokolle können die BeginAccept Methode verwenden, um eingehende Verbindungsversuche zu akzeptieren. Der resultierende Annahmevorgang wird durch den zurückgegebenen IAsyncResult Vorgang dargestellt, obwohl er synchron abgeschlossen werden kann. Bevor Sie die BeginAccept Methode aufrufen, müssen Sie die Listen Methode aufrufen, um eingehende Verbindungsanforderungen zu überwachen und in die Warteschlange zu stellen.
Sie können einen Rückruf übergeben, der BeginAccept implementiert wird, um über den Abschluss des Annahmevorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass, wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abgeschlossen hat, der Rückruf möglicherweise inline ausgeführt wird, während des Aufrufs von BeginAccept. In diesem Fall wird die CompletedSynchronously Eigenschaft für die zurückgegebene IAsyncResult Eigenschaft so festgelegt true , dass die Methode synchron abgeschlossen wurde. Verwenden Sie die AsyncState Eigenschaft des IAsyncResult Zustandsobjekts, das an die BeginAccept Methode übergeben wird.
Der BeginAccept Vorgang muss durch Aufrufen der EndAccept Methode abgeschlossen werden. In der Regel wird die Methode vom bereitgestellten AsyncCallback Delegaten aufgerufen. EndAccept blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.
Um einen ausstehenden Aufruf der BeginAccept Methode abzubrechen, schließen Sie die Socket. Wenn die Close Methode aufgerufen wird, während ein asynchroner Vorgang ausgeführt wird, wird der für die BeginAccept Methode bereitgestellte Rückruf aufgerufen. Bei einem nachfolgenden Aufruf der EndAccept Methode wird ein ObjectDisposedException (vor .NET 7) oder ein SocketException (unter .NET 7+) ausgelöst, um anzugeben, dass der Vorgang abgebrochen wurde.
Hinweis
Sie können die RemoteEndPoint Eigenschaft der zurückgegebenen Socket Eigenschaft verwenden, um die Netzwerkadresse und Portnummer des Remotehosts zu identifizieren.
Hinweis
Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen.
Hinweis
Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing 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 Instanz und einem bestimmten Socket Rückruf) wird bei nachfolgenden Verwendungen dieses Kontexts eine Leistungsverbesserung angezeigt.
Weitere Informationen
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Marshaling a Delegate as a Callback Method
- Beispiel für asynchrones Clientsocket
- Beispiel für asynchrones Serversocket
Gilt für:
BeginConnect(IPAddress, Int32, AsyncCallback, Object)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Startet eine asynchrone Anforderung für eine Remotehostverbindung. Der Host wird durch eine IPAddress Portnummer und eine Portnummer angegeben.
public:
IAsyncResult ^ BeginConnect(System::Net::IPAddress ^ address, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginConnect(System.Net.IPAddress address, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginConnect(System.Net.IPAddress address, int port, AsyncCallback requestCallback, object state);
member this.BeginConnect : System.Net.IPAddress * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (address As IPAddress, port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- port
- Int32
Die Portnummer des Remotehosts.
- requestCallback
- AsyncCallback
Ein AsyncCallback Delegat, der auf die Methode verweist, die aufgerufen werden soll, wenn der Verbindungsvorgang abgeschlossen ist.
- state
- Object
Ein benutzerdefiniertes Objekt, das Informationen zum Verbindungsvorgang enthält. Dieses Objekt wird an die requestCallback Stellvertretung übergeben, wenn der Vorgang abgeschlossen ist.
Gibt zurück
Ein IAsyncResult Verweis auf die asynchrone Verbindung.
Ausnahmen
address ist null.
.NET Framework und .NET 5 und früher: Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.
Das Socket wurde geschlossen.
Dies Socket ist nicht in der Socketfamilie.
Die Portnummer ist ungültig.
Die Länge von address 0 ist null.
Der Socket Zustand wurde durch Aufrufen Listen(Int32)in einen Überwachungszustand versetzt, oder ein asynchroner Vorgang wird bereits ausgeführt.
Hinweise
Von Bedeutung
Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für die neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.
Wenn Sie ein verbindungsorientiertes Protokoll verwenden, startet die BeginConnect Methode eine asynchrone Anforderung für eine Verbindung mit dem durch den remoteEP Parameter angegebenen Endpoit. Wenn Sie ein verbindungsloses Protokoll verwenden, BeginConnect wird ein Standard-Remotehost eingerichtet.
Sie können einen Rückruf übergeben, der BeginConnect implementiert wird, um über den Abschluss des Verbindungsvorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass, wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abgeschlossen hat, der Rückruf möglicherweise inline ausgeführt wird, während des Aufrufs von BeginConnect. In diesem Fall wird die CompletedSynchronously Eigenschaft für die zurückgegebene IAsyncResult Eigenschaft so festgelegt true , dass die Methode synchron abgeschlossen wurde. Verwenden Sie die AsyncState Eigenschaft des IAsyncResult Zustandsobjekts, das an die BeginConnect Methode übergeben wird.
Der BeginConnect Vorgang muss durch Aufrufen der EndConnect Methode abgeschlossen werden. In der Regel wird die Methode vom bereitgestellten AsyncCallback Delegaten aufgerufen. EndConnect blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.
Wenn Sie ein verbindungsloses Protokoll wie UDP verwenden, müssen Sie vor dem Senden und Empfangen von Daten nicht aufrufen BeginConnect . Sie können mit BeginSendTo einem Remotehost kommunizieren und BeginReceiveFrom damit kommunizieren. Wenn Sie aufrufen BeginConnect, werden alle Datagramme, die von einer anderen Adresse als der angegebenen Standard stammen, verworfen. Wenn Sie Ihren Standard-Remotehost auf eine Übertragungsadresse festlegen möchten, müssen Sie zuerst anrufen SetSocketOption und auf "Broadcast" truefestlegen. Wenn dies nicht möglich ist, BeginConnect wird ein SocketException.
Wenn Sie ein verbindungsorientiertes Protokoll verwenden und vor dem Aufrufen Bindnicht aufrufenBeginConnect, weist der zugrunde liegende Dienstanbieter die am besten geeignete lokale Netzwerkadresse und Portnummer zu. Wenn Sie ein verbindungsloses Protokoll verwenden, weist der Dienstanbieter erst dann eine lokale Netzwerkadresse und portnummer zu, wenn Sie die BeginSend Methode aufrufen ReceiveFrom . Wenn Sie den Standard-Remotehost ändern möchten, rufen Sie die BeginConnect Methode erneut mit dem gewünschten Endpunkt auf.
Um einen ausstehenden Aufruf der BeginConnect Methode abzubrechen, schließen Sie die Socket. Wenn die Close Methode aufgerufen wird, während ein asynchroner Vorgang ausgeführt wird, wird der für die BeginConnect Methode bereitgestellte Rückruf aufgerufen. Bei einem nachfolgenden Aufruf der EndConnect Methode wird ein ObjectDisposedException (vor .NET 7) oder ein SocketException (unter .NET 7+) ausgelöst, um anzugeben, dass der Vorgang abgebrochen wurde.
Hinweis
Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen.
Hinweis
Wenn dieser Socket zuvor getrennt wurde, muss er für einen Thread aufgerufen werden, BeginConnect der erst beendet wird, wenn der Vorgang abgeschlossen ist. Dies ist eine Einschränkung des zugrunde liegenden Anbieters.
Hinweis
Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing 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 Instanz und einem bestimmten Socket Rückruf) wird bei nachfolgenden Verwendungen dieses Kontexts eine Leistungsverbesserung angezeigt.
Weitere Informationen
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Marshaling a Delegate as a Callback Method
- Beispiel für asynchrones Clientsocket
- Beispiel für asynchrones Serversocket
Gilt für:
BeginConnect(IPAddress[], Int32, AsyncCallback, Object)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Startet eine asynchrone Anforderung für eine Remotehostverbindung. Der Host wird durch ein IPAddress Array und eine Portnummer angegeben.
public:
IAsyncResult ^ BeginConnect(cli::array <System::Net::IPAddress ^> ^ addresses, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginConnect(System.Net.IPAddress[] addresses, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginConnect(System.Net.IPAddress[] addresses, int port, AsyncCallback requestCallback, object state);
member this.BeginConnect : System.Net.IPAddress[] * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (addresses As IPAddress(), port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- port
- Int32
Die Portnummer des Remotehosts.
- requestCallback
- AsyncCallback
Ein AsyncCallback Delegat, der auf die Methode verweist, die aufgerufen werden soll, wenn der Verbindungsvorgang abgeschlossen ist.
- state
- Object
Ein benutzerdefiniertes Objekt, das Informationen zum Verbindungsvorgang enthält. Dieses Objekt wird an die requestCallback Stellvertretung übergeben, wenn der Vorgang abgeschlossen ist.
Gibt zurück
Ein IAsyncResult Verweis auf die asynchronen Verbindungen.
Ausnahmen
addresses ist null.
.NET Framework und .NET 5 und früher: Beim Versuch, auf den Socket zuzugreifen, ist ein Fehler aufgetreten.
Das Socket wurde geschlossen.
Diese Methode ist gültig für Sockets, die oder InterNetworkInterNetworkV6.
Die Portnummer ist ungültig.
Die Länge von addresses 0 ist null.
Der Socket Zustand wurde durch Aufrufen Listen(Int32)in einen Überwachungszustand versetzt, oder ein asynchroner Vorgang wird bereits ausgeführt.
Hinweise
Von Bedeutung
Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für die neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.
Wenn Sie ein verbindungsorientiertes Protokoll verwenden, startet die BeginConnect Methode eine asynchrone Anforderung für eine Verbindung mit dem durch den remoteEP Parameter angegebenen Endpoit. Wenn Sie ein verbindungsloses Protokoll verwenden, BeginConnect wird ein Standard-Remotehost eingerichtet.
Sie können einen Rückruf übergeben, der BeginConnect implementiert wird, um über den Abschluss des Verbindungsvorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass, wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abgeschlossen hat, der Rückruf möglicherweise inline ausgeführt wird, während des Aufrufs von BeginConnect. In diesem Fall wird die CompletedSynchronously Eigenschaft für die zurückgegebene IAsyncResult Eigenschaft so festgelegt true , dass die Methode synchron abgeschlossen wurde. Verwenden Sie die AsyncState Eigenschaft des IAsyncResult Zustandsobjekts, das an die BeginConnect Methode übergeben wird.
Der BeginConnect Vorgang muss durch Aufrufen der EndConnect Methode abgeschlossen werden. In der Regel wird die Methode vom bereitgestellten AsyncCallback Delegaten aufgerufen. EndConnect blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.
Wenn Sie ein verbindungsloses Protokoll wie UDP verwenden, müssen Sie vor dem Senden und Empfangen von Daten nicht aufrufen BeginConnect . Sie können mit BeginSendTo einem Remotehost kommunizieren und BeginReceiveFrom damit kommunizieren. Wenn Sie aufrufen BeginConnect, werden alle Datagramme, die von einer anderen Adresse als der angegebenen Standard stammen, verworfen. Wenn Sie Ihren Standard-Remotehost auf eine Übertragungsadresse festlegen möchten, müssen Sie zuerst anrufen SetSocketOption und auf "Broadcast" truefestlegen. Wenn dies nicht möglich ist, BeginConnect wird ein SocketException.
Wenn Sie ein verbindungsorientiertes Protokoll verwenden und vor dem Aufrufen Bindnicht aufrufenBeginConnect, weist der zugrunde liegende Dienstanbieter die am besten geeignete lokale Netzwerkadresse und Portnummer zu. Wenn Sie ein verbindungsloses Protokoll verwenden, weist der Dienstanbieter erst dann eine lokale Netzwerkadresse und portnummer zu, wenn Sie die BeginSend Methode aufrufen ReceiveFrom . Wenn Sie den Standard-Remotehost ändern möchten, rufen Sie die BeginConnect Methode erneut mit dem gewünschten Endpunkt auf.
Um einen ausstehenden Aufruf der BeginConnect Methode abzubrechen, schließen Sie die Socket. Wenn die Close Methode aufgerufen wird, während ein asynchroner Vorgang ausgeführt wird, wird der für die BeginConnect Methode bereitgestellte Rückruf aufgerufen. Bei einem nachfolgenden Aufruf der EndConnect Methode wird ein ObjectDisposedException (vor .NET 7) oder ein SocketException (unter .NET 7+) ausgelöst, um anzugeben, dass der Vorgang abgebrochen wurde.
Hinweis
Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen.
Hinweis
Wenn dieser Socket zuvor getrennt wurde, muss er für einen Thread aufgerufen werden, BeginConnect der erst beendet wird, wenn der Vorgang abgeschlossen ist. Dies ist eine Einschränkung des zugrunde liegenden Anbieters.
Hinweis
Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing 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 Instanz und einem bestimmten Socket Rückruf) wird bei nachfolgenden Verwendungen dieses Kontexts eine Leistungsverbesserung angezeigt.
Weitere Informationen
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Marshaling a Delegate as a Callback Method
- Beispiel für asynchrones Clientsocket
- Beispiel für asynchrones Serversocket
Gilt für:
BeginConnect(String, Int32, AsyncCallback, Object)
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
- Quelle:
- Socket.cs
Startet eine asynchrone Anforderung für eine Remotehostverbindung. Der Host wird durch einen Hostnamen und eine Portnummer angegeben.
public:
IAsyncResult ^ BeginConnect(System::String ^ host, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginConnect(string host, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginConnect(string host, int port, AsyncCallback requestCallback, object state);
member this.BeginConnect : string * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (host As String, port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult
Parameter
- host
- String
Der Name des Remotehosts.
- port
- Int32
Die Portnummer des Remotehosts.
- requestCallback
- AsyncCallback
Ein AsyncCallback Delegat, der auf die Methode verweist, die aufgerufen werden soll, wenn der Verbindungsvorgang abgeschlossen ist.
- state
- Object
Ein benutzerdefiniertes Objekt, das Informationen zum Verbindungsvorgang enthält. Dieses Objekt wird an die requestCallback Stellvertretung übergeben, wenn der Vorgang abgeschlossen ist.
Gibt zurück
Ein IAsyncResult Verweis auf die asynchrone Verbindung.
Ausnahmen
host ist null.
Das Socket wurde geschlossen.
Diese Methode ist für Sockets in den InterNetwork Oder InterNetworkV6 Familien gültig.
Die Portnummer ist ungültig.
Der Socket Zustand wurde durch Aufrufen Listen(Int32)in einen Überwachungszustand versetzt, oder ein asynchroner Vorgang wird bereits ausgeführt.
Hinweise
Von Bedeutung
Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für die neue Entwicklung zu verwenden. Verwenden Sie stattdessen die Task-basierten Entsprechungen.
Wenn Sie ein verbindungsorientiertes Protokoll verwenden, startet die BeginConnect Methode eine asynchrone Anforderung für eine Verbindung mit dem durch den remoteEP Parameter angegebenen Endpoit. Wenn Sie ein verbindungsloses Protokoll verwenden, BeginConnect wird ein Standard-Remotehost eingerichtet.
Sie können einen Rückruf übergeben, der BeginConnect implementiert wird, um über den Abschluss des Verbindungsvorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass, wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abgeschlossen hat, der Rückruf möglicherweise inline ausgeführt wird, während des Aufrufs von BeginConnect. In diesem Fall wird die CompletedSynchronously Eigenschaft für die zurückgegebene IAsyncResult Eigenschaft so festgelegt true , dass die Methode synchron abgeschlossen wurde. Verwenden Sie die AsyncState Eigenschaft des IAsyncResult Zustandsobjekts, das an die BeginConnect Methode übergeben wird.
Der BeginConnect Vorgang muss durch Aufrufen der EndConnect Methode abgeschlossen werden. In der Regel wird die Methode vom bereitgestellten AsyncCallback Delegaten aufgerufen. EndConnect blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.
Wenn Sie ein verbindungsloses Protokoll wie UDP verwenden, müssen Sie vor dem Senden und Empfangen von Daten nicht aufrufen BeginConnect . Sie können mit BeginSendTo einem Remotehost kommunizieren und BeginReceiveFrom damit kommunizieren. Wenn Sie aufrufen BeginConnect, werden alle Datagramme, die von einer anderen Adresse als der angegebenen Standard stammen, verworfen. Wenn Sie Ihren Standard-Remotehost auf eine Übertragungsadresse festlegen möchten, müssen Sie zuerst anrufen SetSocketOption und auf "Broadcast" truefestlegen. Wenn dies nicht möglich ist, BeginConnect wird ein SocketException.
Wenn Sie ein verbindungsorientiertes Protokoll verwenden und vor dem Aufrufen Bindnicht aufrufenBeginConnect, weist der zugrunde liegende Dienstanbieter die am besten geeignete lokale Netzwerkadresse und Portnummer zu. Wenn Sie ein verbindungsloses Protokoll verwenden, weist der Dienstanbieter erst dann eine lokale Netzwerkadresse und portnummer zu, wenn Sie die BeginSend Methode aufrufen ReceiveFrom . Wenn Sie den Standard-Remotehost ändern möchten, rufen Sie die BeginConnect Methode erneut mit dem gewünschten Endpunkt auf.
Um einen ausstehenden Aufruf der BeginConnect Methode abzubrechen, schließen Sie die Socket. Wenn die Close Methode aufgerufen wird, während ein asynchroner Vorgang ausgeführt wird, wird der für die BeginConnect Methode bereitgestellte Rückruf aufgerufen. Bei einem nachfolgenden Aufruf der EndConnect Methode wird ein ObjectDisposedException (vor .NET 7) oder ein SocketException (unter .NET 7+) ausgelöst, um anzugeben, dass der Vorgang abgebrochen wurde.
Hinweis
Wenn Sie ein SocketExceptionObjekt erhalten, verwenden Sie die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode abzurufen.
Hinweis
Wenn dieser Socket zuvor getrennt wurde, muss er für einen Thread aufgerufen werden, BeginConnect der erst beendet wird, wenn der Vorgang abgeschlossen ist. Dies ist eine Einschränkung des zugrunde liegenden Anbieters.
Hinweis
Dieses Mitglied gibt Protokollierungsinformationen aus, wenn Sie die Netzwerkablaufverfolgung in Ihrer Anwendung aktivieren. Weitere Informationen finden Sie unter Network Tracing 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 Instanz und einem bestimmten Socket Rückruf) wird bei nachfolgenden Verwendungen dieses Kontexts eine Leistungsverbesserung angezeigt.
Weitere Informationen
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Marshaling a Delegate as a Callback Method
- Beispiel für asynchrones Clientsocket
- Beispiel für asynchrones Serversocket