Socket.BeginAccept Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
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é
- Listen(Int32)
- AsyncCallback
- EndAccept(IAsyncResult)
- Socket
- RemoteEndPoint
- Příklad asynchronního klientského soketu
- Příklad asynchronního serverového soketu
Platí pro
BeginAccept(Int32, AsyncCallback, Object)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
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é
- Listen(Int32)
- AsyncCallback
- EndAccept(IAsyncResult)
- Socket
- RemoteEndPoint
- Příklad asynchronního klientského soketu
- Příklad asynchronního serverového soketu
Platí pro
BeginAccept(Socket, Int32, AsyncCallback, Object)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
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
- 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é
- Listen(Int32)
- AsyncCallback
- EndAccept(IAsyncResult)
- Socket
- RemoteEndPoint
- Příklad asynchronního klientského soketu
- Příklad asynchronního serverového soketu