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