Socket.ReceiveAsync 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í.
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
Byl Socket zavřený.
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.
Byl Socket zavřený.
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
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
.
Byl Socket zavřený.
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:
SocketAsyncEventArgs.Buffer nebo SocketAsyncEventArgs.BufferList
SocketAsyncEventArgs.Count pokud SocketAsyncEventArgs.Buffer je nastavená
SocketAsyncEventArgs.Offset pokud SocketAsyncEventArgs.Buffer je nastavená
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
Byl Socket zavřený.
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.
Byl Socket zavřený.
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
- 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
Byl Socket zavřený.
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
- 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
Byl Socket zavřený.
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.