Udostępnij za pośrednictwem


Socket.ReceiveMessageFrom Metoda

Definicja

Przeciążenia

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

Odbiera określoną liczbę bajtów danych do określonej lokalizacji buforu danych przy użyciu określonej wartości SocketFlagsi 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 buforu danych przy użyciu określonej wartości socketFlagsi 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 buforu danych przy użyciu określonej wartości SocketFlagsi 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-

offset jest większa niż długość obiektu 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 procesorze AMD 64-bitowym.

-lub-

Wystąpił błąd podczas próby uzyskania dostępu do gniazda.

Została zamknięta Socket .

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 na gniazdach bez połączenia. Adres lokalny gniazda musi być znany. Ta metoda może być używana tylko z datagramem i nieprzetworzonymi gniazdami. Gniazdo musi zostać zainicjowane przy użyciu typu gniazda ustawionego na Dgram lub Raw przed wywołaniem tej metody. Można to zrobić, gdy gniazdo jest skonstruowane 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, gdzie znajdują buffer się dane. Rzeczywista ilość danych umieszczonych w obiekcie buffer jest zwracana przez metodę ReceiveMessageFrom .

Metoda ReceiveMessageFrom automatycznie ustawia PacketInformation opcję gniazda po true raz pierwszy jest wywoływana dla danego Socket. Jednak zwrócony IPPacketInformation obiekt będzie prawidłowy tylko dla pakietów, które docierają do komputera lokalnego po ustawieniu opcji gniazda. Jeśli gniazdo jest wysyłane pakiety między, gdy jest powiązane z lokalnym punktem końcowym (jawnie przez metodę lub niejawnie przez Bind jedną z Connectmetod , , ConnectAsynclub SendToAsyncSendTo) i jego pierwsze wywołanie ReceiveMessageFrom metody, wywołanie 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 wartość przed jej powiązaniem 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

Element AddressFamilyEndPoint używany w ReceiveFrom pliku musi być zgodny AddressFamily z wartością używaną EndPoint w SendToelemecie .

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 buforu danych przy użyciu określonej wartości socketFlagsi 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

Socket Obiekt został zamknięty.

RemoteEP EndPoint to null.

Element AddressFamilyEndPoint używany w ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) programie musi być zgodny AddressFamily z wartością używaną EndPoint w funkcji SendTo.

Socket Obiekt nie jest w trybie blokowania i nie może zaakceptować tego synchronicznego wywołania. Przed wykonaniem tej operacji należy wywołać metodę Bind.

Dotyczy