Socket.ReceiveMessageFrom Metoda

Definicja

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 socketFlagswartości i przechowuje informacje o punkcie końcowym i pakiecie.

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

buffer
Byte[]

Tablica typu Byte , która jest lokalizacją przechowywania odebranych danych.

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

buffer to null.

-lub-

remoteEP to null.

offset wartość jest mniejsza niż 0.

-lub-

offsetjest 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ż

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 socketFlagswartoś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

buffer
Span<Byte>

Byte TypSpan<T>, który jest lokalizacją przechowywania odebranych danych.

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