Socket.ReceiveMessageFromAsync 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í
ReceiveMessageFromAsync(SocketAsyncEventArgs) |
Začne asynchronně přijímat zadaný počet bajtů dat do zadaného umístění ve vyrovnávací paměti dat pomocí zadaného SocketFlagsa ukládá koncové body a informace o paketech. |
ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint) |
Přijme data a vrátí další informace o odesílateli zprávy. |
ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint) |
Přijme data a vrátí další informace o odesílateli zprávy. |
ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken) |
Přijme data a vrátí další informace o odesílateli zprávy. |
ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken) |
Přijme data a vrátí další informace o odesílateli zprávy. |
ReceiveMessageFromAsync(SocketAsyncEventArgs)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Začne asynchronně přijímat zadaný počet bajtů dat do zadaného umístění ve vyrovnávací paměti dat pomocí zadaného SocketFlagsa ukládá koncové body a informace o paketech.
public:
bool ReceiveMessageFromAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveMessageFromAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveMessageFromAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveMessageFromAsync (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
Hodnota RemoteEndPoint nesmí být null.
Byl Socket zavřený.
Při pokusu o přístup k soketu došlo k chybě.
Poznámky
Metoda se ReceiveMessageFromAsync primárně používá k příjmu dat zpráv na soketu bez připojení. Místní adresa soketu musí být známá. Tuto metodu lze použít pouze s datagramem a nezpracovanými sokety. Soket musí být inicializován s typem soketu nastaveným na Dgram nebo Raw před voláním této metody. To lze provést při vytváření soketu pomocí Socket.
Volající musí vlastnost nastavit SocketAsyncEventArgs.RemoteEndPoint na EndPoint stejný typ jako koncový bod vzdáleného hostitele. Vlastnost se po úspěšném přijetí aktualizuje na skutečný vzdálený koncový bod.
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 ReceiveMessageFromAsync 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ů orientovaných na zprávy se příchozí zpráva umístí do vyrovnávací paměti až do celkové velikosti vyrovnávací paměti. Vlastnosti SocketAsyncEventArgs.Count a SocketAsyncEventArgs.Offset určují, kam se ve vyrovnávací paměti data umístí a jaké množství dat jsou.
Metoda ReceiveMessageFromAsync automaticky nastaví PacketInformation možnost soketu na true
první zavolání pro danou Socket. Objekt však bude platný pouze pro pakety, IPPacketInformation které přijdou do místního počítače po nastavení možnosti soketu. Pokud je soket odeslán pakety mezi tím, když je soket vázán na místní koncový bod (explicitně Bind metodou nebo implicitně některou z Connectmetod , ConnectAsync, SendTonebo SendToAsync ) a prvním voláním ReceiveMessageFromAsync metody, volání ReceiveMessageFromAsync metody způsobí neplatné IPPacketInformation objekty pro tyto pakety.
Aby se zajistilo, že jsou všechny IPPacketInformation objekty platné, měla by aplikace nastavit možnost soketu PacketInformation na hodnotu předtrue
tím, než je svázaná s místním koncovým bodem pomocí SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) metody .
Aplikace může výsledné IPPacketInformation objekty prozkoumat, pokud potřebuje zjistit, jestli byl datagram odeslán pomocí adresy jednosměrového vysílání, vícesměrového vysílání nebo všesměrového vysílání.
Viz také
Platí pro
ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Přijme data a vrátí další informace o odesílateli zprávy.
public:
System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveMessageFromResult> ^ ReceiveMessageFromAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (ArraySegment<byte> buffer, System.Net.EndPoint remoteEndPoint);
member this.ReceiveMessageFromAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As ArraySegment(Of Byte), remoteEndPoint As EndPoint) As Task(Of SocketReceiveMessageFromResult)
Parametry
- buffer
- ArraySegment<Byte>
Vyrovnávací paměť pro přijatá data.
- remoteEndPoint
- EndPoint
Koncový bod stejného typu jako koncový bod vzdáleného hostitele.
Návraty
Asynchronní úloha, která se dokončí s SocketReceiveMessageFromResult počtem přijatých bajtů a dalšími informacemi o odesílajícím hostiteli.
Výjimky
Objekt Socket byl uzavřen.
remoteEndPoint
je null
.
Před provedením této operace je nutné volat metodu Bind.
Platí pro
ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Přijme data a vrátí další informace o odesílateli zprávy.
public:
System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveMessageFromResult> ^ ReceiveMessageFromAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint);
member this.ReceiveMessageFromAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint) As Task(Of SocketReceiveMessageFromResult)
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.
- remoteEndPoint
- EndPoint
Koncový bod stejného typu jako koncový bod vzdáleného hostitele.
Návraty
Asynchronní úloha, která se dokončí s SocketReceiveMessageFromResult počtem přijatých bajtů a dalšími informacemi o odesílajícím hostiteli.
Výjimky
Objekt Socket byl uzavřen.
remoteEndPoint
je null
.
Před provedením této operace je nutné volat metodu Bind.
Platí pro
ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Přijme data a vrátí další informace o odesílateli zprávy.
public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (Memory<byte> buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveMessageFromAsync : Memory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As Memory(Of Byte), remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveMessageFromResult)
Parametry
- remoteEndPoint
- EndPoint
Koncový bod stejného typu jako koncový bod vzdáleného hostitele.
- cancellationToken
- CancellationToken
Token zrušení, který lze použít k signalizaci asynchronní operace, by se měl zrušit.
Návraty
Asynchronní úloha, která se dokončí s SocketReceiveMessageFromResult počtem přijatých bajtů a dalšími informacemi o odesílajícím hostiteli.
Výjimky
Objekt Socket byl uzavřen.
remoteEndPoint
je null
.
Před provedením této operace je nutné volat metodu Bind.
Token zrušení byl zrušen. Tato výjimka je uložena ve vrácené úloze.
Platí pro
ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Přijme data a vrátí další informace o odesílateli zprávy.
public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveMessageFromAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveMessageFromResult)
Parametry
- socketFlags
- SocketFlags
Bitové kombinace hodnot SocketFlags, které se použijí při příjmu dat.
- remoteEndPoint
- EndPoint
Koncový bod stejného typu jako koncový bod vzdáleného hostitele.
- cancellationToken
- CancellationToken
Token zrušení, který lze použít k signalizaci asynchronní operace, by se měl zrušit.
Návraty
Asynchronní úloha, která se dokončí s SocketReceiveMessageFromResult počtem přijatých bajtů a dalšími informacemi o odesílajícím hostiteli.
Výjimky
Objekt Socket byl uzavřen.
remoteEndPoint
je null
.
Před provedením této operace je nutné volat metodu Bind.
Token zrušení byl zrušen. Tato výjimka je uložena ve vrácené úloze.