Socket.ReceiveAsync Metoda

Definice

Přetížení

ReceiveAsync(ArraySegment<Byte>)

Přijímá data z připojeného soketu.

ReceiveAsync(IList<ArraySegment<Byte>>)

Přijímá data z připojeného soketu.

ReceiveAsync(SocketAsyncEventArgs)

Zahájí asynchronní požadavek na příjem dat z připojeného Socket objektu.

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Přijímá data z připojeného soketu.

ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)

Přijímá data z připojeného soketu.

ReceiveAsync(Memory<Byte>, CancellationToken)

Přijímá data z připojeného soketu.

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Přijímá data z připojeného soketu.

ReceiveAsync(ArraySegment<Byte>)

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

Přijímá data z připojeného soketu.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(ArraySegment<System::Byte> buffer);
public System.Threading.Tasks.Task<int> ReceiveAsync (ArraySegment<byte> buffer);
member this.ReceiveAsync : ArraySegment<byte> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffer As ArraySegment(Of Byte)) As Task(Of Integer)

Parametry

buffer
ArraySegment<Byte>

Vyrovnávací paměť pro přijatá data.

Návraty

Asynchronní úloha, která se dokončí s počtem přijatých bajtů.

Výjimky

Při pokusu o přístup k soketu došlo k chybě.

Platí pro

ReceiveAsync(IList<ArraySegment<Byte>>)

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

Přijímá data z připojeného soketu.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public System.Threading.Tasks.Task<int> ReceiveAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte))) As Task(Of Integer)

Parametry

buffers
IList<ArraySegment<Byte>>

Seznam vyrovnávacích pamětí pro přijatá data.

Návraty

Asynchronní úloha, která se dokončí s počtem přijatých bajtů.

Výjimky

Parametr buffers měl hodnotu null.

Při pokusu o přístup k soketu došlo k chybě.

Poznámky

Tato metoda ukládá do úlohy, která vrací všechny výjimky nepouužování, které může vyvolat synchronní protějšek metody. Pokud je do vrácené úlohy uložena výjimka, bude tato výjimka vyvolána, když je úloha očekávána. Výjimky použití, jako ArgumentExceptionje , se stále vyvolává synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Receive(IList<ArraySegment<Byte>>).

Platí pro

ReceiveAsync(SocketAsyncEventArgs)

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

Zahájí asynchronní požadavek na příjem dat z připojeného Socket objektu.

public:
 bool ReceiveAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveAsync (e As SocketAsyncEventArgs) As Boolean

Parametry

e
SocketAsyncEventArgs

Objekt SocketAsyncEventArgs , který se má použít pro tuto asynchronní soketové operace.

Návraty

true pokud operace V/V čeká na vyřízení. Událost Completed parametru e se vyvolá po dokončení operace.

false pokud se vstupně-výstupní operace dokončila synchronně. V tomto případě událost parametru e nebude vyvolána a e objekt předaný jako parametr může být prozkoumán okamžitě poté, Completed co se volání metody vrátí, aby se načetl výsledek operace.

Výjimky

Argument byl neplatný. Vlastnosti Buffer nebo BufferList u parametru e musí odkazovat na platné vyrovnávací paměti. Jedna nebo druhá z těchto vlastností může být nastavena, ale ne obě současně.

Operace soketu již probíhala pomocí objektu SocketAsyncEventArgs zadaného v parametru e .

Při pokusu o přístup k soketu došlo k chybě.

Poznámky

Metoda se ReceiveAsync používá u připojených soketů nebo vázaných soketů bez připojení a slouží ke čtení příchozích dat. Místní adresa soketu musí být známá.

U vázaných soketů bez připojení tato funkce omezuje adresy, ze kterých jsou přijímány přijaté zprávy. Funkce vrací pouze zprávy ze vzdálené adresy zadané v připojení. Zprávy z jiných adres se tiše zahodí.

Vlastnost SocketAsyncEventArgs.SocketFlags parametru e poskytuje poskytovateli služby Windows Sockets další informace o požadavku na čtení. Další informace o použití tohoto parametru najdete v tématu System.Net.Sockets.SocketFlags.

Následující vlastnosti a události na objektu System.Net.Sockets.SocketAsyncEventArgs jsou vyžadovány k úspěšnému volání této metody:

Volající může nastavit SocketAsyncEventArgs.UserToken vlastnost na libovolný objekt stavu uživatele požadovaný před voláním ReceiveAsync metody tak, aby informace bylo možné získat v metodě zpětného volání. Pokud zpětné volání potřebuje více informací než jeden objekt, lze vytvořit malou třídu, která bude obsahovat ostatní požadované informace o stavu jako členy.

U soketů ve stylu datového proudu bajtů se příchozí data ukládají do vyrovnávací paměti, dokud se vyrovnávací paměť nevyplní, připojení se ukončí nebo se nevyčerpají interně uložená data.

U soketů orientovaných na zprávy je příchozí zpráva umístěna do vyrovnávací paměti až do celkové velikosti vyrovnávací paměti přidružené k parametru e . Pokud je zpráva větší než vyrovnávací paměť, zaplní se do vyrovnávací paměti první část zprávy.

U soketů orientovaných na připojení může metoda označit řádné ukončení virtuálního okruhu jedním ze dvou způsobů, které závisí na tom, ReceiveAsync zda je soket orientovaný na datový proud bajtů nebo zprávy. U datových proudů bajtů nula přečtených bajtů značí řádné uzavření a žádné další bajty se nikdy nepřečtou. U soketů orientovaných na zprávy, kde je často povolená zpráva s nulovým bajtem, SocketException se k označení odkladu uzavření používá vlastnost s nastaveným SocketAsyncEventArgs.SocketError na nativní kód chyby Winsock WSAEDISCON (10101). V každém případě SocketException s SocketAsyncEventArgs.SocketError nastaveným na nativní winsock WSAECONNRESET kód chyby (10054) značí, že došlo k přerušení uzavření.

Viz také

Platí pro

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

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

Přijímá data z připojeného soketu.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> ReceiveAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.ReceiveAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags) As Task(Of Integer)

Parametry

buffer
ArraySegment<Byte>

Vyrovnávací paměť pro přijatá data.

socketFlags
SocketFlags

Bitové kombinace SocketFlags hodnoty, které budou použity při přijímání dat.

Návraty

Asynchronní úloha, která se dokončí s počtem přijatých bajtů.

Výjimky

Při pokusu o přístup k soketu došlo k chybě.

Platí pro

ReceiveAsync(IList<ArraySegment<Byte>>, SocketFlags)

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

Přijímá data z připojeného soketu.

public:
 System::Threading::Tasks::Task<int> ^ ReceiveAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> ReceiveAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.ReceiveAsync : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function ReceiveAsync (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Task(Of Integer)

Parametry

buffers
IList<ArraySegment<Byte>>

Seznam vyrovnávacích pamětí pro přijatá data.

socketFlags
SocketFlags

Bitové kombinace SocketFlags hodnoty, které budou použity při přijímání dat.

Návraty

Asynchronní úloha, která se dokončí s počtem přijatých bajtů.

Výjimky

Parametr buffers měl hodnotu null.

Při pokusu o přístup k soketu došlo k chybě.

Poznámky

Tato metoda ukládá do úlohy, která vrací všechny výjimky nepouužování, které může vyvolat synchronní protějšek metody. Pokud je do vrácené úlohy uložena výjimka, bude tato výjimka vyvolána, když je úloha očekávána. Výjimky použití, jako ArgumentExceptionje , se stále vyvolává synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Receive(IList<ArraySegment<Byte>>, SocketFlags).

Platí pro

ReceiveAsync(Memory<Byte>, CancellationToken)

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

Přijímá data z připojeného soketu.

public System.Threading.Tasks.ValueTask<int> ReceiveAsync (Memory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveAsync : Memory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveAsync (buffer As Memory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parametry

buffer
Memory<Byte>

Vyrovnávací paměť pro přijatá data.

cancellationToken
CancellationToken

Token zrušení, který lze použít ke zrušení asynchronní operace.

Návraty

Asynchronní úloha, která se dokončí s počtem přijatých bajtů.

Výjimky

Při pokusu o přístup k soketu došlo k chybě.

Token zrušení byl zrušen. Tato výjimka se uloží do vrácené úlohy.

Platí pro

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

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

Přijímá data z připojeného soketu.

public System.Threading.Tasks.ValueTask<int> ReceiveAsync (Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function ReceiveAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

Parametry

buffer
Memory<Byte>

Vyrovnávací paměť pro přijatá data.

socketFlags
SocketFlags

Bitové kombinace SocketFlags hodnoty, které budou použity při přijímání dat.

cancellationToken
CancellationToken

Token zrušení, který lze použít ke zrušení asynchronní operace.

Návraty

Asynchronní úloha, která se dokončí s počtem přijatých bajtů.

Výjimky

Při pokusu o přístup k soketu došlo k chybě.

Token zrušení byl zrušen. Tato výjimka se uloží do vrácené úlohy.

Platí pro