Socket.ReceiveMessageFrom 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) |
지정된 SocketFlags를 사용하여 데이터 버퍼의 지정된 위치에 지정된 바이트 수의 데이터를 수신하고 엔드포인트 및 패킷 정보를 저장합니다. |
ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) |
지정된 |
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
매개 변수
- offset
- Int32
수신된 데이터를 저장할 buffer
매개 변수의 위치입니다.
- size
- Int32
수신 바이트 수입니다.
- socketFlags
- SocketFlags
SocketFlags 값의 비트 조합입니다.
- ipPacketInformation
- IPPacketInformation
IPPacketInformation 보유 주소 및 인터페이스 정보입니다.
반환
받은 바이트 수입니다.
예외
offset
가 0보다 작습니다.
또는
offset
이 buffer
의 길이보다 큽니다.
또는
size
가 0보다 작습니다.
또는
size
가 buffer
의 길이에서 오프셋 매개 변수 값을 뺀 크기보다 큰 경우
socketFlags
가 값의 유효한 조합이 아닙니다.
또는
LocalEndPoint 속성이 설정되지 않은 경우
또는
.NET Framework가 AMD 64비트 프로세서에서 실행 중인 경우
또는
소켓에 액세스하는 동안 오류가 발생했습니다.
Socket이 닫혔습니다.
설명
메서드는 ReceiveMessageFrom 매개 변수로 buffer
데이터를 읽고, 성공적으로 읽은 바이트 수를 반환하고, 데이터가 전송된 원격 호스트 엔드포인트와 수신된 패킷에 대한 정보를 캡처합니다.
메서드는 ReceiveMessageFrom 주로 연결 없는 소켓에서 메시지 데이터를 수신하는 데 사용됩니다. 소켓의 로컬 주소를 알고 있어야 합니다. 이 메서드는 데이터그램 및 원시 소켓에서만 사용할 수 있습니다. 이 메서드를 호출하기 전에 소켓 유형을 또는 Raw 로 설정하여 소켓을 Dgram 초기화해야 합니다. 이 작업은 를 사용하여 Socket소켓을 생성할 때 수행할 수 있습니다.
메시지 지향 소켓의 경우 들어오는 메시지가 매개 변수에 buffer
지정된 총 크기까지 매개 변수에 size
배치됩니다. 매개 변수는 offset
데이터의 배치 위치를 buffer
결정합니다. 에 buffer
배치된 데이터의 실제 양은 메서드에서 ReceiveMessageFrom 반환됩니다.
메서드는 ReceiveMessageFrom 지정된 Socket에 PacketInformation 대해 처음 호출되는 소켓 옵션을 true
자동으로 로 설정합니다. 그러나 반환 IPPacketInformation 된 개체는 소켓 옵션이 설정된 후 로컬 컴퓨터에 도착하는 패킷에 대해서만 유효합니다. 소켓이 로컬 엔드포인트에 바인딩될 때(명시적으로 메서드에 의해 Bind 또는 암시적으로 , , SendToConnectAsync또는 SendToAsync 메서드 중 Connect하나에 의해) 및 메서드에 대한 첫 번째 호출 ReceiveMessageFrom 사이에 패킷을 보내는 경우 메서드 호출 ReceiveMessageFrom 은 이러한 패킷에 대해 잘못된 IPPacketInformation 개체를 반환합니다.
되도록 모든 IPPacketInformation 개체는 유효, 애플리케이션 설정 해야 합니다 PacketInformation 소켓 옵션을 true
사용 하 여 로컬 엔드포인트에 연결 되기 전에 SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) 메서드.
애플리케이션을 검사할 수는 ipPacketInformation
유니캐스트, 멀티 캐스트 또는 브로드캐스트 주소를 사용 하 여 데이터 그램을 보냈는지를 알고 있어야 하는 경우 매개 변수입니다.
참고
에 사용되는 의 EndPoint 는 AddressFamily 에 ReceiveFrom 사용된 SendTo의 EndPoint 와 AddressFamily 일치해야 합니다.
참고
애플리케이션에 네트워크 추적을 사용하도록 설정하면 이 멤버에서 추적 정보를 출력합니다. 자세한 내용은 .NET Framework 네트워크 추적을 참조하세요.
추가 정보
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
적용 대상
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
매개 변수
- socketFlags
- SocketFlags
SocketFlags 값의 비트 조합입니다.
- ipPacketInformation
- IPPacketInformation
IPPacketInformation 보유 주소 및 인터페이스 정보입니다.
반환
받은 바이트 수입니다.
예외
Socket 개체가 닫힌 경우
remoteEP는 EndPoint 입니다 null
.
에 ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) 사용되는 의 EndPoint 는 AddressFamily SendTo에 사용된 의 EndPoint 와 일치 AddressFamily 해야 합니다.
Socket 개체가 차단 모드가 아니며 이 동기 호출을 수락할 수 없는 경우 이 작업을 수행하기 전에 Bind 메서드를 호출해야 합니다.
적용 대상
.NET