Sdílet prostřednictvím


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>)

Zdroj:
Socket.Tasks.cs
Zdroj:
Socket.Tasks.cs
Zdroj:
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>>)

Zdroj:
Socket.Tasks.cs
Zdroj:
Socket.Tasks.cs
Zdroj:
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 nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány 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)

Zdroj:
Socket.cs
Zdroj:
Socket.cs
Zdroj:
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í operaci soketu.

Návraty

true pokud operace vstupně-výstupní operace č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 zkontrolován okamžitě poté, Completed co volání metody vrátí výsledek operace.

Výjimky

Argument nebyl platný. Vlastnosti Buffer nebo BufferList 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ě najednou.

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 se přijímají přijaté zprávy. Funkce vrací pouze zprávy ze vzdálené adresy zadané v připojení. Zprávy z jiných adres se bezobslužně zahodí.

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

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

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

U soketů datových proudů bajtů se příchozí data umisťují do vyrovnávací paměti, dokud se vyrovnávací paměť nenaplní, připojení se zavře nebo se nevyčerpají data ve vnitřní vyrovnávací paměti.

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 ReceiveAsync na připojení může metoda indikovat řádné ukončení virtuálního okruhu jedním ze dvou způsobů, které závisí na tom, jestli je soket orientovaný na datový proud bajtů nebo na zprávu. U datových proudů bajtů nula přečtených bajtů značí řádné uzavření a žádné další bajty se už nikdy nepřečtou. U soketů orientovaných na zprávy, kde je často povolená zpráva s SocketAsyncEventArgs.SocketError nulovou bajtovou zprávouSocketException, se k označení odkladu uzavření používá kód chyby s nativní chybou Winsock WSAEDISCON (10101). V každém případě SocketException hodnota s nastaveným SocketAsyncEventArgs.SocketError na nativní kód chyby Winsock WSAECONNRESET (10054) značí, že došlo k přerušení uzavření.

Viz také

Platí pro

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Zdroj:
Socket.Tasks.cs
Zdroj:
Socket.Tasks.cs
Zdroj:
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 hodnot SocketFlags, které se použijí při příjmu 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)

Zdroj:
Socket.Tasks.cs
Zdroj:
Socket.Tasks.cs
Zdroj:
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 hodnot SocketFlags, které se použijí při příjmu 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 nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány 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)

Zdroj:
Socket.Tasks.cs
Zdroj:
Socket.Tasks.cs
Zdroj:
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 je uložena ve vrácené úloze.

Platí pro

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Zdroj:
Socket.Tasks.cs
Zdroj:
Socket.Tasks.cs
Zdroj:
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 hodnot SocketFlags, které se použijí při příjmu 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 je uložena ve vrácené úloze.

Platí pro