Socket.BeginReceiveMessageFrom 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í.
Začne asynchronně přijímat zadaný počet bajtů dat do zadaného umístění datové vyrovnávací paměti pomocí zadaného SocketFlagsa ukládá koncové body a informace o paketech.
public:
IAsyncResult ^ BeginReceiveMessageFrom(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ % remoteEP, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback callback, object state);
member this.BeginReceiveMessageFrom : byte[] * int * int * System.Net.Sockets.SocketFlags * EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceiveMessageFrom (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef remoteEP As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult
Parametry
- offset
- Int32
Pozice založená na nule v parametru buffer
, na kterém se mají data ukládat.
- size
- Int32
Počet bajtů, které se mají přijmout.
- socketFlags
- SocketFlags
Bitové kombinace SocketFlags hodnot.
- remoteEP
- EndPoint
Odkaz na EndPoint objekt stejného typu jako koncový bod vzdáleného hostitele, který se má aktualizovat při synchronním příjmu.
- callback
- AsyncCallback
Delegát.AsyncCallback
- state
- Object
Objekt, který obsahuje informace o stavu tohoto požadavku.
Návraty
Objekt IAsyncResult , který odkazuje na asynchronní čtení.
Výjimky
Pouze rozhraní .NET Framework a .NET 5 a starší: Při pokusu o přístup k soketu došlo k chybě.
offset
je menší než 0.
-nebo-
offset
je větší než délka .buffer
-nebo-
size
je menší než 0.
-nebo-
size
je větší než délka buffer
minus hodnota parametru offset
.
Byl Socket zavřený.
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
.
Zpětné volání, které se implementuje AsyncCallback do BeginReceiveMessageFrom , můžete předat, abyste dostali oznámení o dokončení operace. Všimněte si, že pokud podkladový síťový zásobník dokončí operaci synchronně, provede se zpětné volání přímo během volání nástroje BeginReceiveMessageFrom. 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 objektuBeginReceiveMessageFrom.
Asynchronní BeginReceiveMessageFrom operace musí být dokončena voláním EndReceiveMessageFrom metody . Obvykle je metoda vyvolána delegátem AsyncCallback . EndReceiveMessageFrom zablokuje volající vlákno, dokud se operace nedokonči.
Chcete-li zrušit čekající BeginReceiveMessageFromoperaci , zavolejte metodu Close .
Tato metoda načte data do parametru buffer
a zachytí koncový bod vzdáleného hostitele, ze kterého se data odesílají, a také informace o přijatém paketu. Informace o tom, jak tento koncový bod načíst, najdete v tématu EndReceiveMessageFrom. Tato metoda je nejužitečnější, pokud chcete asynchronně přijímat datagramy bez připojení z neznámého hostitele nebo více hostitelů.
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.