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 a informace o rozhraní pro uchování.
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ě.
Byla Socket uzavřena.
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 v 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, když je soket vytvořen pomocí Socket.
U soketů orientovaných na zprávy je příchozí zpráva umístěna do parametru buffer
až do celkové velikosti zadané v parametru size
. Parametr offset
určuje, kam se buffer
data umístí. 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 daný Socket. Vrácený IPPacketInformation objekt však bude platný pouze pro pakety, které dorazí 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 před true
tím, než se sváže 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é v EndPointReceiveFrom 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 a informace o rozhraní pro uchování.
Návraty
Počet přijatých bajtů
Výjimky
Objekt Socket byl uzavřen.
RemoteEP EndPoint je null
.
EndPoint Hodnota AddressFamily použitých v ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) musí odpovídat hodnotě AddressFamilyEndPoint použité 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.
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro