Socket.BeginAccept Metoda

Definice

Zahájí asynchronní operaci, která přijme příchozí pokus o připojení.

Přetížení

BeginAccept(AsyncCallback, Object)

Zahájí asynchronní operaci, která přijme příchozí pokus o připojení.

BeginAccept(Int32, AsyncCallback, Object)

Zahájí asynchronní operaci pro přijetí příchozího pokusu o připojení a přijme první blok dat odeslaných klientskou aplikací.

BeginAccept(Socket, Int32, AsyncCallback, Object)

Zahájí asynchronní operaci, která přijme příchozí pokus o připojení ze zadaného soketu a přijme první blok dat odeslaný klientskou aplikací.

BeginAccept(AsyncCallback, Object)

Zahájí asynchronní operaci, která přijme příchozí pokus o připojení.

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

Parametry

callback
AsyncCallback

Delegát.AsyncCallback

state
Object

Objekt, který obsahuje informace o stavu tohoto požadavku.

Návraty

Objekt IAsyncResult , který odkazuje na asynchronní Socket vytvoření.

Výjimky

Objekt Socket byl uzavřen.

Přijímající soket nenaslouchá připojení. Před voláním BeginAccept(AsyncCallback, Object)musíte zavolat Bind(EndPoint) a Listen(Int32) .

-nebo-

Akceptovaná soket je svázaná.

receiveSize je menší než 0.

Pouze rozhraní .NET Framework a .NET 5 a starší: Při pokusu o přístup k soketu došlo k chybě.

Poznámky

Důležité

Toto je rozhraní API pro kompatibilitu. Pro nový vývoj nedoporučujeme používat metody APM (Begin* a End*). Místo toho použijte ekvivalenty založené na Task.

Protokoly orientované na připojení můžou pomocí BeginAccept metody začít přijímat příchozí pokusy o připojení. Před voláním BeginAccept metody je nutné volat metodu Listen , která naslouchá příchozím požadavkům na připojení a zařadí do fronty.

Zpětné volání, které se implementuje AsyncCallback do BeginAccept , můžete předat, abyste dostali oznámení o dokončení operace přijetí. Všimněte si, že pokud podkladový síťový zásobník dokončí operaci synchronně, může být zpětné volání spuštěno přímo během volání nástroje BeginAccept. V tomto případě CompletedSynchronously bude vlastnost vrácena IAsyncResult na hodnotu, která true označuje, že metoda byla dokončena synchronně. AsyncState K získání objektu IAsyncResult stavu předaného metodě použijte vlastnost objektuBeginAccept.

Operace BeginAccept musí být dokončena voláním EndAccept metody. Obvykle je metoda vyvolána poskytnutým AsyncCallback delegátem. EndAccept zablokuje volající vlákno, dokud se operace nedokonči.

Pokud chcete zrušit čekající volání BeginAccept metody, zavřete .Socket Close Při volání metody, zatímco asynchronní operace probíhá, zpětné volání poskytnuté BeginAccept metodě je volána. Následné volání EndAccept metody vyvolá ObjectDisposedException (před rozhraním .NET 7) nebo SocketException (v .NET 7+) označující, že operace byla zrušena.

Poznámka

Vlastnost vráceného RemoteEndPointSocket objektu můžete použít k identifikaci síťové adresy a čísla portu vzdáleného hostitele.

Poznámka

Pokud se zobrazí SocketException, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby.

Poznámka

Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.

Poznámka

Kontext spuštění (kontext zabezpečení, zosobněný uživatel a kontext volání) se ukládá do mezipaměti pro asynchronní Socket metody. Po prvním použití konkrétního kontextu (konkrétní asynchronní Socket metody, konkrétní Socket instance a konkrétního zpětného volání) se při následných použitích tohoto kontextu projeví zlepšení výkonu.

Viz také

Platí pro

BeginAccept(Int32, AsyncCallback, Object)

Zahájí asynchronní operaci pro přijetí příchozího pokusu o připojení a přijme první blok dat odeslaných klientskou aplikací.

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

Parametry

receiveSize
Int32

Počet bajtů, které se mají přijmout od odesílatele.

callback
AsyncCallback

Delegát.AsyncCallback

state
Object

Objekt, který obsahuje informace o stavu tohoto požadavku.

Návraty

Objekt IAsyncResult , který odkazuje na asynchronní Socket vytvoření.

Výjimky

Objekt Socket byl uzavřen.

Přijímající soket nenaslouchá připojení. Před voláním BeginAccept(AsyncCallback, Object)musíte zavolat Bind(EndPoint) a Listen(Int32) .

-nebo-

Akceptovaná soket je svázaná.

receiveSize je menší než 0.

Pouze rozhraní .NET Framework a .NET 5 a starší: Při pokusu o přístup k soketu došlo k chybě.

Poznámky

Důležité

Toto je rozhraní API pro kompatibilitu. Pro nový vývoj nedoporučujeme používat metody APM (Begin* a End*). Místo toho použijte ekvivalenty založené na Task.

Protokoly orientované na připojení můžou pomocí BeginAccept metody začít přijímat příchozí pokusy o připojení. Před voláním BeginAccept metody je nutné volat metodu Listen , která naslouchá příchozím požadavkům na připojení a zařadí do fronty.

Zpětné volání, které se implementuje AsyncCallback do BeginAccept , můžete předat, abyste dostali oznámení o dokončení operace přijetí. Všimněte si, že pokud podkladový síťový zásobník dokončí operaci synchronně, může být zpětné volání spuštěno přímo během volání nástroje BeginAccept. V tomto případě CompletedSynchronously bude vlastnost vrácena IAsyncResult na hodnotu, která true označuje, že metoda byla dokončena synchronně. AsyncState K získání objektu IAsyncResult stavu předaného metodě použijte vlastnost objektuBeginAccept.

Operace BeginAccept musí být dokončena voláním EndAccept metody. Obvykle je metoda vyvolána poskytnutým AsyncCallback delegátem. EndAccept zablokuje volající vlákno, dokud se operace nedokonči.

Pokud chcete zrušit čekající volání BeginAccept metody, zavřete .Socket Close Při volání metody, zatímco asynchronní operace probíhá, zpětné volání poskytnuté BeginAccept metodě je volána. Následné volání EndAccept metody vyvolá ObjectDisposedException (před rozhraním .NET 7) nebo SocketException (v .NET 7+) označující, že operace byla zrušena.

Poznámka

Vlastnost vráceného RemoteEndPointSocket objektu můžete použít k identifikaci síťové adresy a čísla portu vzdáleného hostitele.

Poznámka

Pokud se zobrazí SocketException, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby.

Poznámka

Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.

Poznámka

Kontext spuštění (kontext zabezpečení, zosobněný uživatel a kontext volání) se ukládá do mezipaměti pro asynchronní Socket metody. Po prvním použití konkrétního kontextu (konkrétní asynchronní Socket metody, konkrétní Socket instance a konkrétního zpětného volání) se při následných použitích tohoto kontextu projeví zlepšení výkonu.

Viz také

Platí pro

BeginAccept(Socket, Int32, AsyncCallback, Object)

Zahájí asynchronní operaci, která přijme příchozí pokus o připojení ze zadaného soketu a přijme první blok dat odeslaný klientskou aplikací.

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

Parametry

acceptSocket
Socket

Akceptované Socket objekty. Tato hodnota může být null.

receiveSize
Int32

Maximální počet bajtů, které se mají přijmout.

callback
AsyncCallback

Delegát.AsyncCallback

state
Object

Objekt, který obsahuje informace o stavu tohoto požadavku.

Návraty

Objekt IAsyncResult , který odkazuje na asynchronní Socket vytvoření objektu.

Výjimky

Objekt Socket byl uzavřen.

Přijímající soket nenaslouchá připojení. Před voláním BeginAccept(AsyncCallback, Object)musíte zavolat Bind(EndPoint) a Listen(Int32) .

-nebo-

Akceptovaná soket je svázaná.

receiveSize je menší než 0.

Pouze rozhraní .NET Framework a .NET 5 a starší: Při pokusu o přístup k soketu došlo k chybě.

Poznámky

Důležité

Toto je rozhraní API pro kompatibilitu. Pro nový vývoj nedoporučujeme používat metody APM (Begin* a End*). Místo toho použijte ekvivalenty založené na Task.

Protokoly orientované na připojení můžou pomocí BeginAccept metody začít přijímat příchozí pokusy o připojení. Výsledná operace přijetí je reprezentována vrácenou IAsyncResult operací, i když se může dokončit synchronně. Před voláním BeginAccept metody musíte zavolat metodu Listen , která naslouchá příchozím žádostem o připojení a zařadí do fronty.

Zpětné volání, které se implementuje AsyncCallback do BeginAccept , můžete předat, abyste dostali oznámení o dokončení operace přijetí. Všimněte si, že pokud podkladová síťová sada dokončí operaci synchronně, může být zpětné volání spuštěno vložené během volání metody BeginAccept. V tomto případě CompletedSynchronously bude vlastnost vrácena IAsyncResult nastavena na , true aby bylo možné označit, že metoda byla dokončena synchronně. AsyncState K získání objektu stavu předaného BeginAccept metodě použijte vlastnost IAsyncResult .

Operace BeginAccept musí být dokončena voláním EndAccept metody . Metoda je obvykle vyvolána poskytnutým AsyncCallback delegátem. EndAccept až do dokončení operace zablokuje volající vlákno.

Pokud chcete zrušit čekající volání BeginAccept metody, zavřete Socket. Close Když je volána metoda v době, kdy probíhá asynchronní operace, je volána zpětná volání poskytnutá BeginAccept metodě. Následné volání EndAccept metody vyvolá ObjectDisposedException (před .NET 7) nebo SocketException (v rozhraní .NET 7+) označující, že operace byla zrušena.

Poznámka

Vlastnost vráceného Socket objektu RemoteEndPoint můžete použít k identifikaci síťové adresy a čísla portu vzdáleného hostitele.

Poznámka

Pokud se zobrazí SocketException, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby.

Poznámka

Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.

Poznámka

Kontext spuštění (kontext zabezpečení, zosobněný uživatel a kontext volání) se ukládá do mezipaměti pro asynchronní Socket metody. Po prvním použití určitého kontextu (konkrétní asynchronní Socket metoda, konkrétní Socket instance a konkrétní zpětné volání) dojde při dalších použitích tohoto kontextu ke zlepšení výkonu.

Viz také

Platí pro