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í
ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) |
Přijme zadaný počet bajtů dat do zadaného umístění datové vyrovnávací paměti pomocí zadaného SocketFlagsa uloží informace o koncovém bodu a paketu. |
ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) |
Přijme zadaný počet bajtů dat do zadaného umístění datové vyrovnávací paměti pomocí zadaného |
ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Přijme zadaný počet bajtů dat do zadaného umístění datové vyrovnávací paměti pomocí zadaného SocketFlagsa uloží informace o koncovém bodu a paketu.
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 EndPoint objekt stejného typu jako koncový bod vzdáleného hostitele, který se má aktualizovat při úspěšném přijetí.
- ipPacketInformation
- IPPacketInformation
Adresa IPPacketInformation holdingu 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 parametru buffer
minus hodnota parametru posunu.
socketFlags
není platná kombinace hodnot.
-nebo-
Vlastnost LocalEndPoint nebyla nastavena.
-nebo-
Rozhraní .NET Framework běží na 64bitovém procesoru AMD.
-nebo-
Při pokusu o přístup k soketu došlo k chybě.
Byl Socket zavřený.
Poznámky
Metoda ReceiveMessageFrom načte data do parametru buffer
, vrátí počet bajtů, které byly úspěšně přečteny, a zachytí koncový bod vzdáleného hostitele, ze kterého byla data odeslána, a také informace o přijatém paketu.
Metoda se ReceiveMessageFrom 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.
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í dat buffer
. Skutečné množství dat umístěných do buffer
je vráceno metodou ReceiveMessageFrom .
Metoda ReceiveMessageFrom automaticky nastaví PacketInformation možnost soketu na true
první zavolání pro danou Socket. Vrácený IPPacketInformation objekt však bude platný pouze pro pakety, které přijdou do místního počítače po nastavení možnosti soketu. Pokud je soket odeslán pakety mezi, když je svázán s místním koncovým bodem (explicitně metodou Bind nebo implicitně některou z Connectmetod , ConnectAsync, SendTonebo SendToAsync ) a jeho prvním voláním ReceiveMessageFrom metody, volání ReceiveMessageFrom metody vrátí 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řed true
tím, než je svázaná s místním koncovým bodem pomocí SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) metody .
Aplikace může parametr prozkoumat, ipPacketInformation
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í.
Poznámka
Hodnota AddressFamily použitého EndPoint v ReceiveFrom musí odpovídat hodnotě AddressFamilyEndPoint použité v SendTo.
Poznámka
Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .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
Přijme zadaný počet bajtů dat do zadaného umístění datové vyrovnávací paměti pomocí zadaného socketFlags
a uloží informace o koncovém bodu a paketu.
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 EndPoint objekt stejného typu jako koncový bod vzdáleného hostitele, který se má aktualizovat při úspěšném přijetí.
- ipPacketInformation
- IPPacketInformation
Adresa IPPacketInformation holdingu a informace o rozhraní.
Návraty
Počet přijatých bajtů.
Výjimky
Objekt Socket byl uzavřen.
RemoteEP EndPoint je null
.
Hodnota AddressFamily použitého EndPoint v ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) se musí shodovat AddressFamily s použitými 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.