Socket.ReceiveMessageFrom Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) |
Odbiera określoną liczbę bajtów danych do określonej lokalizacji bufora danych przy użyciu określonej SocketFlagswartości i przechowuje informacje o punkcie końcowym i pakiecie. |
ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) |
Odbiera określoną liczbę bajtów danych do określonej lokalizacji bufora danych przy użyciu określonej |
ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
Odbiera określoną liczbę bajtów danych do określonej lokalizacji bufora danych przy użyciu określonej SocketFlagswartości i przechowuje informacje o punkcie końcowym i pakiecie.
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
Pozycja w parametrze buffer
do przechowywania odebranych danych.
- size
- Int32
Liczba bajtów do odebrania.
- socketFlags
- SocketFlags
Bitowa kombinacja SocketFlags wartości.
- remoteEP
- EndPoint
Odwołanie do EndPoint tego samego typu co punkt końcowy hosta zdalnego, który ma zostać zaktualizowany po pomyślnym odebraniu.
- ipPacketInformation
- IPPacketInformation
Informacje IPPacketInformation o adresie i interfejsie przechowywania.
Zwraca
Liczba bajtów odebranych.
Wyjątki
offset
wartość jest mniejsza niż 0.
-lub-
offset
jest większa niż długość .buffer
-lub-
size
wartość jest mniejsza niż 0.
-lub-
size
jest większa niż długość buffer
minus wartości parametru przesunięcia.
socketFlags
nie jest prawidłową kombinacją wartości.
-lub-
Właściwość nie została ustawiona LocalEndPoint .
-lub-
.NET Framework działa na 64-bitowym procesorze AMD.
-lub-
Wystąpił błąd podczas próby uzyskania dostępu do gniazda.
Element Socket został zamknięty.
Uwagi
Metoda ReceiveMessageFrom odczytuje dane do parametru buffer
, zwraca liczbę bajtów pomyślnie odczytanych i przechwytuje zdalny punkt końcowy hosta, z którego zostały wysłane dane, a także informacje o odebranym pakiecie.
Metoda ReceiveMessageFrom jest używana głównie do odbierania danych komunikatów w gniazdie bez połączenia. Adres lokalny gniazda musi być znany. Tej metody można używać tylko z datagramem i nieprzetworzonymi gniazdami. Gniazdo musi zostać zainicjowane z typem gniazda ustawionym na Dgram lub Raw przed wywołaniem tej metody. Można to zrobić, gdy gniazdo jest konstruowane przy użyciu polecenia Socket.
W przypadku gniazd zorientowanych na komunikaty przychodzący komunikat jest umieszczany w parametrze buffer
do całkowitego rozmiaru określonego w parametrze size
. Parametr offset
określa miejsce, w buffer
którym znajdują się dane. Rzeczywista ilość danych umieszczonych w obiekcie buffer
jest zwracana przez metodę ReceiveMessageFrom .
Metoda ReceiveMessageFrom automatycznie ustawia PacketInformation opcję gniazda na true
pierwszy raz, gdy jest wywoływana dla danego Socket. Jednak zwrócony IPPacketInformation obiekt będzie prawidłowy tylko w przypadku pakietów, które docierają do komputera lokalnego po ustawieniu opcji gniazda. Jeśli gniazdo jest wysyłane pakiety między, gdy jest powiązany z lokalnym punktem końcowym (jawnie przez metodę lub niejawnie przez Bind jedną z Connectmetod , , SendToConnectAsynclubSendToAsync) i jego pierwsze wywołanie ReceiveMessageFrom metody, wywołania ReceiveMessageFrom metody zwróci nieprawidłowe IPPacketInformation obiekty dla tych pakietów.
Aby upewnić się, że wszystkie IPPacketInformation obiekty są prawidłowe, aplikacja powinna ustawić PacketInformation opcję gniazda na true
, zanim zostanie powiązana z lokalnym punktem końcowym przy użyciu SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) metody .
Aplikacja może sprawdzić parametr, ipPacketInformation
jeśli musi wiedzieć, czy datagram został wysłany przy użyciu emisji pojedynczej, multiemisji lub adresu emisji.
Uwaga
Parametr AddressFamily używany w ReceiveFrom programie musi być zgodny AddressFamily z wartością użytą w SendToelemEndPoint.EndPoint
Uwaga
Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.
Zobacz też
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Dotyczy
ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
- Źródło:
- Socket.cs
Odbiera określoną liczbę bajtów danych do określonej lokalizacji bufora danych przy użyciu określonej socketFlags
wartości i przechowuje informacje o punkcie końcowym i pakiecie.
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
Bitowa kombinacja SocketFlags wartości.
- remoteEP
- EndPoint
Odwołanie do EndPoint tego samego typu co punkt końcowy hosta zdalnego, który ma zostać zaktualizowany po pomyślnym odebraniu.
- ipPacketInformation
- IPPacketInformation
Informacje IPPacketInformation o adresie i interfejsie przechowywania.
Zwraca
Liczba bajtów odebranych.
Wyjątki
Obiekt Socket został zamknięty.
RemoteEP EndPoint to null
.
EndPoint Element AddressFamily używany w ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) programie musi być zgodny AddressFamily z wartością używaną w funkcji EndPoint SendTo.
Obiekt Socket nie jest w trybie blokowania i nie może zaakceptować tego wywołania synchronicznego. Przed wykonaniem tej operacji należy wywołać metodę Bind.
Dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla