Socket.ReceiveMessageFrom 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 |
|---|---|
| ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) |
Přijme zadaný počet bajtů dat do zadaného umístění vyrovnávací paměti dat pomocí zadaného SocketFlagsa uloží koncový bod a informace o paketech. |
| ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) |
Přijme zadaný počet bajtů dat do zadaného umístění vyrovnávací paměti dat pomocí zadaného |
ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Přijme zadaný počet bajtů dat do zadaného umístění vyrovnávací paměti dat pomocí zadaného SocketFlagsa uloží koncový bod a informace o paketech.
public:
int ReceiveMessageFrom(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % remoteEP, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int ReceiveMessageFrom(byte[] buffer, int offset, int size, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.ReceiveMessageFrom : byte[] * int * int * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function ReceiveMessageFrom (buffer As Byte(), offset As Integer, size As Integer, ByRef socketFlags As SocketFlags, ByRef remoteEP As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer
Parametry
- offset
- Int32
Pozice v parametru buffer pro uložení přijatých dat.
- size
- Int32
Počet bajtů, které se mají přijmout.
- socketFlags
- SocketFlags
Bitové kombinace SocketFlags hodnot.
- remoteEP
- EndPoint
Odkaz na stejný EndPoint typ jako koncový bod vzdáleného hostitele, který se má aktualizovat při úspěšném přijetí.
- ipPacketInformation
- IPPacketInformation
Adresa IPPacketInformation a informace o rozhraní.
Návraty
Počet přijatých bajtů
Výjimky
offset je menší než 0.
nebo
offset je větší než délka buffer.
nebo
size je menší než 0.
nebo
size je větší než délka mínus buffer hodnoty parametru posunu.
socketFlags není platná kombinace hodnot.
nebo
Vlastnost LocalEndPoint nebyla nastavena.
nebo
.NET Framework běží na 64bitovém procesoru AMD.
nebo
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Poznámky
Metoda ReceiveMessageFrom načte data do parametru buffer , vrátí počet bajtů úspěšně přečtených a zachytí koncový bod vzdáleného hostitele, ze kterého byla data odeslána, a také informace o přijatém paketu.
Tato ReceiveMessageFrom 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.
U soketů orientovaných na zprávy se příchozí zpráva umístí do parametru buffer až do celkové velikosti zadané v parametru size . Parametr offset určuje umístění v buffer datech. Skutečné množství dat umístěných do metody buffer je vráceno metodou ReceiveMessageFrom .
Metoda ReceiveMessageFrom automaticky nastaví možnost soketu PacketInformation při true prvním zavolání pro danou Socket. Vrácený IPPacketInformation objekt 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 svázán s místním koncovým bodem (explicitně Bind metodou nebo implicitně jedním z Connect, , ConnectAsyncSendTo, nebo SendToAsync metod) a jeho prvním voláním ReceiveMessageFrom metody, volání metody ReceiveMessageFrom vrátí neplatné IPPacketInformation objekty pro tyto pakety.
Aby se zajistilo, že všechny IPPacketInformation objekty jsou platné, měla by aplikace nastavit možnost PacketInformation soketu true před tím, než bude vázána na místní koncový bod pomocí SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) metody.
Aplikace může parametr prozkoumat ipPacketInformation , 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í.
Note
Počet AddressFamilyEndPoint použitých hodnot ReceiveFrom musí odpovídat AddressFamily použitému EndPointSendTo
Note
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace najdete v tématu Network Tracing v .NET Framework.
Viz také
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Platí pro
ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Přijme zadaný počet bajtů dat do zadaného umístění vyrovnávací paměti dat pomocí zadaného socketFlagsa uloží koncový bod a informace o paketech.
public:
int ReceiveMessageFrom(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % remoteEP, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int ReceiveMessageFrom(Span<byte> buffer, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.ReceiveMessageFrom : Span<byte> * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function ReceiveMessageFrom (buffer As Span(Of Byte), ByRef socketFlags As SocketFlags, ByRef remoteEP As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer
Parametry
- socketFlags
- SocketFlags
Bitové kombinace SocketFlags hodnot.
- remoteEP
- EndPoint
Odkaz na stejný EndPoint typ jako koncový bod vzdáleného hostitele, který se má aktualizovat při úspěšném přijetí.
- ipPacketInformation
- IPPacketInformation
Adresa IPPacketInformation a informace o rozhraní.
Návraty
Počet přijatých bajtů
Výjimky
Objekt Socket byl uzavřen.
RemoteEP EndPoint je null.
Počet AddressFamilyEndPoint použitých hodnot ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) musí odpovídat AddressFamily použitému EndPoint v sendTo.
Objekt Socket není v režimu blokování a nemůže přijmout toto synchronní volání. Před provedením této operace je nutné volat metodu Bind.