Socket.ReceiveMessageFrom 메서드

정의

오버로드

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

지정된 SocketFlags를 사용하여 데이터 버퍼의 지정된 위치에 지정된 바이트 수의 데이터를 수신하고 엔드포인트 및 패킷 정보를 저장합니다.

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

지정된 socketFlags를 사용하여 데이터 버퍼의 지정된 위치에 지정된 바이트 수의 데이터를 수신하고 엔드포인트 및 패킷 정보를 저장합니다.

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

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

지정된 SocketFlags를 사용하여 데이터 버퍼의 지정된 위치에 지정된 바이트 수의 데이터를 수신하고 엔드포인트 및 패킷 정보를 저장합니다.

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

매개 변수

buffer
Byte[]

수신된 데이터의 스토리지 위치에 해당하는 형식 Byte의 배열입니다.

offset
Int32

수신된 데이터를 저장할 buffer 매개 변수의 위치입니다.

size
Int32

수신 바이트 수입니다.

socketFlags
SocketFlags

SocketFlags 값의 비트 조합입니다.

remoteEP
EndPoint

성공적인 수신 시 업데이트할 원격 호스트의 엔드포인트와 동일한 형식의 에 대한 참조 EndPoint 입니다.

ipPacketInformation
IPPacketInformation

IPPacketInformation 보유 주소 및 인터페이스 정보입니다.

반환

받은 바이트 수입니다.

예외

buffernull입니다.

또는

remoteEP이(가) null인 경우

offset 가 0보다 작습니다.

또는

offsetbuffer의 길이보다 큽니다.

또는

size 가 0보다 작습니다.

또는

sizebuffer의 길이에서 오프셋 매개 변수 값을 뺀 크기보다 큰 경우

socketFlags가 값의 유효한 조합이 아닙니다.

또는

LocalEndPoint 속성이 설정되지 않은 경우

또는

.NET Framework가 AMD 64비트 프로세서에서 실행 중인 경우

또는

소켓에 액세스하는 동안 오류가 발생했습니다.

Socket이 닫혔습니다.

설명

메서드는 ReceiveMessageFrom 매개 변수로 buffer 데이터를 읽고, 성공적으로 읽은 바이트 수를 반환하고, 데이터가 전송된 원격 호스트 엔드포인트와 수신된 패킷에 대한 정보를 캡처합니다.

메서드는 ReceiveMessageFrom 주로 연결 없는 소켓에서 메시지 데이터를 수신하는 데 사용됩니다. 소켓의 로컬 주소를 알고 있어야 합니다. 이 메서드는 데이터그램 및 원시 소켓에서만 사용할 수 있습니다. 소켓 유형이 로 설정되거나 Raw 이 메서드를 Dgram 호출하기 전에 소켓을 초기화해야 합니다. 이 작업은 를 사용하여 Socket소켓을 생성할 때 수행할 수 있습니다.

메시지 지향 소켓의 경우 들어오는 메시지가 매개 변수에 buffer 지정된 총 크기까지 매개 변수에 size 배치됩니다. 매개 변수는 offset 데이터의 위치가 buffer 결정됩니다. 에 buffer 배치된 실제 데이터 양은 메서드에서 ReceiveMessageFrom 반환됩니다.

메서드는 ReceiveMessageFrom 지정된 SocketPacketInformation 대해 처음 호출되는 소켓 옵션을 true 자동으로 로 설정합니다. 그러나 반환 IPPacketInformation 된 개체는 소켓 옵션이 설정된 후 로컬 컴퓨터에 도착하는 패킷에 대해서만 유효합니다. 소켓이 로컬 엔드포인트에 바인딩될 때(메서드에 의해 Bind 명시적으로 또는 암시적으로 , , SendToConnectAsync또는 SendToAsync 메서드 중 Connect하나에 의해) 및 메서드에 대한 첫 번째 호출 사이에 패킷을 ReceiveMessageFrom 보내는 경우 메서드 호출 ReceiveMessageFrom 은 이러한 패킷에 대해 잘못된 IPPacketInformation 개체를 반환합니다.

되도록 모든 IPPacketInformation 개체는 유효, 애플리케이션 설정 해야 합니다 PacketInformation 소켓 옵션을 true 사용 하 여 로컬 엔드포인트에 연결 되기 전에 SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) 메서드.

애플리케이션을 검사할 수는 ipPacketInformation 유니캐스트, 멀티 캐스트 또는 브로드캐스트 주소를 사용 하 여 데이터 그램을 보냈는지를 알고 있어야 하는 경우 매개 변수입니다.

참고

에 사용되는 의 는 AddressFamilyEndPointReceiveFrom 사용된 SendToEndPointAddressFamily 일치해야 합니다.

참고

애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework 네트워크 추적을 참조하세요.

추가 정보

적용 대상

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

지정된 socketFlags를 사용하여 데이터 버퍼의 지정된 위치에 지정된 바이트 수의 데이터를 수신하고 엔드포인트 및 패킷 정보를 저장합니다.

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

매개 변수

buffer
Span<Byte>

Span<T> 받은 데이터의 스토리지 위치인 형식 Byte 의 입니다.

socketFlags
SocketFlags

SocketFlags 값의 비트 조합입니다.

remoteEP
EndPoint

성공적인 수신 시 업데이트할 원격 호스트의 엔드포인트와 동일한 형식의 에 대한 참조 EndPoint 입니다.

ipPacketInformation
IPPacketInformation

IPPacketInformation 보유 주소 및 인터페이스 정보입니다.

반환

받은 바이트 수입니다.

예외

Socket 개체가 닫힌 경우

remoteEP는 EndPoint 입니다 null.

Socket 개체가 차단 모드가 아니며 이 동기 호출을 수락할 수 없는 경우 이 작업을 수행하기 전에 Bind 메서드를 호출해야 합니다.

적용 대상