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í
| Name | Description |
|---|---|
| ReceiveMessageFromAsync(SocketAsyncEventArgs) |
Začne asynchronně přijímat zadaný počet bajtů dat do zadaného umístění v datové vyrovnávací paměti pomocí zadaného SocketFlagsa ukládá koncový bod 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
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Začne asynchronně přijímat zadaný počet bajtů dat do zadaného umístění v datové vyrovnávací paměti pomocí zadaného SocketFlagsa ukládá koncový bod 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 bude vyvolána po dokončení operace.
false pokud se vstupně-výstupní operace dokončila synchronně. V tomto případě Completed nebude vyvolána událost parametru e a e objekt předaný jako parametr může být zkoumán okamžitě po volání metody vrátí načíst výsledek operace.
Výjimky
Hodnota RemoteEndPoint nemůže být null.
Ta Socket byla uzavřena.
Při pokusu o přístup k soketu došlo k chybě.
Poznámky
Tato ReceiveMessageFromAsync metoda se používá především 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 stejný EndPoint typ jako koncový bod vzdáleného hostitele. Vlastnost bude aktualizována při úspěšném přijetí na skutečný vzdálený koncový bod.
K úspěšnému volání této metody jsou vyžadovány následující vlastnosti a události objektu System.Net.Sockets.SocketAsyncEventArgs :
Volající může před voláním SocketAsyncEventArgs.UserToken metody nastavit ReceiveMessageFromAsync vlastnost na libovolný objekt stavu uživatele, aby informace byly v metodě zpětného volání dostupné. Pokud zpětné volání potřebuje více informací než jeden objekt, lze 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 určují SocketAsyncEventArgs.Offset umístění dat ve vyrovnávací paměti a množství dat.
Metoda ReceiveMessageFromAsync automaticky nastaví možnost soketu PacketInformation poprvé true , kdy je volána pro danou Socket. Objekt IPPacketInformation však bude platný pouze pro pakety, které přicházejí do místního počítače po nastavení možnosti soketu. Pokud se soket odešle pakety mezi tím, kdy je soket vázán na místní koncový bod (explicitně Bind metodou nebo implicitně jedním z Connect, ConnectAsync, SendTonebo SendToAsync metod) a prvním voláním ReceiveMessageFromAsync metody, volání metody ReceiveMessageFromAsync způsobí neplatné IPPacketInformation objekty pro tyto pakety.
Aby se zajistilo, že všechny IPPacketInformation objekty jsou platné, měla by aplikace nastavit možnosttrue soketu PacketInformation před tím, než bude vázána na místní koncový bod pomocí SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) metody.
Aplikace může prozkoumat výsledné IPPacketInformation objekty, pokud potřebuje vědět, jestli byl datagram odeslán pomocí jednosměrového vysílání, vícesměrového vysílání nebo adresy 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
- 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 počtem přijatých bajtů a dalšími informacemi SocketReceiveMessageFromResult 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
- 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 počtem přijatých bajtů a dalšími informacemi SocketReceiveMessageFromResult 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
- 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 počtem přijatých bajtů a dalšími informacemi SocketReceiveMessageFromResult 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 do vrácené úlohy.
Platí pro
ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- 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 počtem přijatých bajtů a dalšími informacemi SocketReceiveMessageFromResult 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 do vrácené úlohy.