Socket.BeginAccept Methode

Definition

Beginnt einen asynchronen Vorgang, um eine eingehende Verbindung anzunehmen.

Überlädt

BeginAccept(AsyncCallback, Object)

Beginnt einen asynchronen Vorgang, um eine eingehende Verbindung anzunehmen.

BeginAccept(Int32, AsyncCallback, Object)

Beginnt einen asynchronen Vorgang, um eine eingehende Verbindung anzunehmen, und empfängt den ersten von der Clientanwendung gesendeten Datenblock.

BeginAccept(Socket, Int32, AsyncCallback, Object)

Beginnt einen asynchronen Vorgang, um eine eingehende Verbindung von einem angegebenen Socket anzunehmen, und empfängt den ersten von der Clientanwendung gesendeten Datenblock.

BeginAccept(AsyncCallback, Object)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Beginnt einen asynchronen Vorgang, um eine eingehende Verbindung anzunehmen.

public:
 IAsyncResult ^ BeginAccept(AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept (AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept (AsyncCallback callback, object state);
member this.BeginAccept : AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

callback
AsyncCallback

Der AsyncCallback -Delegat.

state
Object

Ein Objekt mit Zustandsinformationen für diese Anforderung.

Gibt zurück

Ein IAsyncResult, das auf die asynchrone Socket-Erstellung verweist.

Ausnahmen

Das Socket-Objekt wurde geschlossen.

Der annehmende Socket überwacht keine Verbindungen. Vor dem Aufruf von Bind(EndPoint) müssen Sie Listen(Int32) und BeginAccept(AsyncCallback, Object) aufrufen.

- oder -

Der angenommene Socket ist gebunden.

receiveSize ist kleiner als 0.

nur .NET Framework und .NET 5 und früher: Fehler beim Versuch, auf den Socket zuzugreifen.

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.

Verbindungsorientierte Protokolle können die BeginAccept -Methode verwenden, um eingehende Verbindungsversuche zu akzeptieren. Bevor Sie die BeginAccept -Methode aufrufen, müssen Sie die Listen -Methode aufrufen, um eingehende Verbindungsanforderungen zu lauschen und in die Warteschlange zu stellen.

Sie können einen Rückruf übergeben, der implementiert wird, BeginAccept um über den Abschluss des Annahmevorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass der Rückruf während des Aufrufs BeginAcceptvon möglicherweise 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 BeginAccept abzurufen.

Der BeginAccept Vorgang muss durch Aufrufen der EndAccept -Methode abgeschlossen werden. In der Regel wird die -Methode vom bereitgestellten AsyncCallback Delegat aufgerufen. EndAccept blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.

Um einen ausstehenden Aufruf der BeginAccept -Methode abzubrechen, schließen Sie .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. Ein späterer Aufruf der EndAccept -Methode löst ein ObjectDisposedException (vor .NET 7) oder ein (unter .NET 7+) aus SocketException , um anzugeben, dass der Vorgang abgebrochen wurde.

Hinweis

Sie können die RemoteEndPoint Eigenschaft des zurückgegebenen Socket verwenden, um die Netzwerkadresse und Portnummer des Remotehosts zu identifizieren.

Hinweis

Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.

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

Gilt für:

BeginAccept(Int32, AsyncCallback, Object)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Beginnt einen asynchronen Vorgang, um eine eingehende Verbindung anzunehmen, und empfängt den ersten von der Clientanwendung gesendeten Datenblock.

public:
 IAsyncResult ^ BeginAccept(int receiveSize, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept (int receiveSize, AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept (int receiveSize, AsyncCallback callback, object state);
member this.BeginAccept : int * AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (receiveSize As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

receiveSize
Int32

Die Anzahl der Bytes vom Absender, die angenommen werden sollen.

callback
AsyncCallback

Der AsyncCallback-Delegat.

state
Object

Ein Objekt mit Zustandsinformationen für diese Anforderung.

Gibt zurück

Ein IAsyncResult, das auf die asynchrone Socket-Erstellung verweist.

Ausnahmen

Das Socket-Objekt wurde geschlossen.

Der annehmende Socket überwacht keine Verbindungen. Vor dem Aufruf von Bind(EndPoint) müssen Sie Listen(Int32) und BeginAccept(AsyncCallback, Object) aufrufen.

- oder -

Der angenommene Socket ist gebunden.

receiveSize ist kleiner als 0.

nur .NET Framework und .NET 5 und früher: Fehler beim Versuch, auf den Socket zuzugreifen.

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.

Verbindungsorientierte Protokolle können die BeginAccept -Methode verwenden, um eingehende Verbindungsversuche zu akzeptieren. Bevor Sie die BeginAccept -Methode aufrufen, müssen Sie die Listen -Methode aufrufen, um eingehende Verbindungsanforderungen zu lauschen und in die Warteschlange zu stellen.

Sie können einen Rückruf übergeben, der implementiert wird, BeginAccept um über den Abschluss des Annahmevorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass der Rückruf während des Aufrufs BeginAcceptvon möglicherweise 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 BeginAccept abzurufen.

Der BeginAccept Vorgang muss durch Aufrufen der EndAccept -Methode abgeschlossen werden. In der Regel wird die -Methode vom bereitgestellten AsyncCallback Delegat aufgerufen. EndAccept blockiert den aufrufenden Thread, bis der Vorgang abgeschlossen ist.

Um einen ausstehenden Aufruf der BeginAccept -Methode abzubrechen, schließen Sie .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. Ein späterer Aufruf der EndAccept -Methode löst ein ObjectDisposedException (vor .NET 7) oder ein (unter .NET 7+) aus SocketException , um anzugeben, dass der Vorgang abgebrochen wurde.

Hinweis

Sie können die RemoteEndPoint Eigenschaft des zurückgegebenen Socket verwenden, um die Netzwerkadresse und Portnummer des Remotehosts zu identifizieren.

Hinweis

Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.

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

Gilt für:

BeginAccept(Socket, Int32, AsyncCallback, Object)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

Beginnt einen asynchronen Vorgang, um eine eingehende Verbindung von einem angegebenen Socket anzunehmen, und empfängt den ersten von der Clientanwendung gesendeten Datenblock.

public:
 IAsyncResult ^ BeginAccept(System::Net::Sockets::Socket ^ acceptSocket, int receiveSize, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginAccept (System.Net.Sockets.Socket? acceptSocket, int receiveSize, AsyncCallback? callback, object? state);
public IAsyncResult BeginAccept (System.Net.Sockets.Socket acceptSocket, int receiveSize, AsyncCallback callback, object state);
member this.BeginAccept : System.Net.Sockets.Socket * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginAccept (acceptSocket As Socket, receiveSize As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

Parameter

acceptSocket
Socket

Das angenommene Socket-Objekt. Dieser Wert kann null sein.

receiveSize
Int32

Die maximale Anzahl der zu empfangenden Bytes.

callback
AsyncCallback

Der AsyncCallback-Delegat.

state
Object

Ein Objekt mit Zustandsinformationen für diese Anforderung.

Gibt zurück

Ein IAsyncResult, das auf die asynchrone Socket-Objekterstellung verweist.

Ausnahmen

Das Socket-Objekt wurde geschlossen.

Der annehmende Socket überwacht keine Verbindungen. Vor dem Aufruf von Bind(EndPoint) müssen Sie Listen(Int32) und BeginAccept(AsyncCallback, Object) aufrufen.

- oder -

Der angenommene Socket ist gebunden.

receiveSize ist kleiner als 0.

nur .NET Framework und .NET 5 und früher: Fehler beim Versuch, auf den Socket zuzugreifen.

Hinweise

Wichtig

Dies ist eine Kompatibilitäts-API. Es wird nicht empfohlen, die Methoden APM (Begin* und End*) für die Neuentwicklung 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 dargestellt, auch wenn 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 implementiert, BeginAccept um über den Abschluss des Annahmevorgangs AsyncCallback benachrichtigt zu werden. Beachten Sie, dass der Rückruf während des Aufrufs BeginAcceptvon inline ausgeführt wird, wenn der zugrunde liegende Netzwerkstapel den Vorgang synchron abschließt. In diesem Fall wird die CompletedSynchronously -Eigenschaft für den zurückgegebenen 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 BeginAccept abzurufen.

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 .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. Ein nachfolgender Aufruf der EndAccept -Methode löst eine ObjectDisposedException (vor .NET 7) oder eine (unter .NET 7 und höher) aus SocketException , um anzugeben, dass der Vorgang abgebrochen wurde.

Hinweis

Sie können die RemoteEndPoint -Eigenschaft des zurückgegebenen Socket verwenden, um die Netzwerkadresse und Portnummer des Remotehosts zu identifizieren.

Hinweis

Wenn Sie erhalten eine SocketException, verwenden die SocketException.ErrorCode Eigenschaft, um den spezifischen Fehlercode zu erhalten.

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

Gilt für: