다음을 통해 공유


Socket.EndReceiveMessageFrom 메서드

정의

특정 엔드포인트에서 보류 중인 비동기 읽기를 끝냅니다. 또한 이 메서드는 패킷에 대해 EndReceiveFrom(IAsyncResult, EndPoint)이 제공하는 것보다 많은 정보를 제공합니다.

public:
 int EndReceiveMessageFrom(IAsyncResult ^ asyncResult, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % endPoint, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int EndReceiveMessageFrom (IAsyncResult asyncResult, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint endPoint, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.EndReceiveMessageFrom : IAsyncResult * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function EndReceiveMessageFrom (asyncResult As IAsyncResult, ByRef socketFlags As SocketFlags, ByRef endPoint As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer

매개 변수

asyncResult
IAsyncResult

이 비동기 작업에 대한 상태 정보 및 사용자 정의 데이터를 저장하는 IAsyncResult입니다.

socketFlags
SocketFlags

받은 패킷에 대한 SocketFlags 값의 비트 조합입니다.

endPoint
EndPoint

소스 EndPoint입니다.

ipPacketInformation
IPPacketInformation

받은 패킷의 IPAddress 및 인터페이스입니다.

반환

성공할 경우 받은 바이트 수입니다. 실패하면 0을 반환합니다.

예외

asyncResultnull인 경우

또는

endPoint이(가) null인 경우

BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) 메서드를 호출했지만 asyncResult가 반환되지 않은 경우

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

또는

.NET 7 이상만 해당: 가 Socket 닫혔습니다.

.NET Framework, .NET Core 및 .NET 5-6만 해당: 가 Socket 닫혔습니다.

설명

중요

호환성 API입니다. 새 개발에 APM (Begin*End*) 메서드를 사용하지 않는 것이 좋습니다. 대신 기반 등가 Task를 사용합니다.

EndReceiveFrom 는 에서 시작한 작업을 완료합니다 BeginReceiveFrom. 일치하는 BeginReceiveFrom 호출로 IAsyncResult 만든 을 전달해야 합니다. EndReceiveFrom 는 작업이 완료될 때까지 호출 스레드를 차단합니다.

유니캐스트, 멀티캐스트 또는 브로드캐스트 주소를 사용하여 데이터그램이 전송되었는지 확인해야 하는지 검사 ipPacketInformation 합니다.

참고

를 수신하는 SocketException경우 속성을 사용하여 SocketException.ErrorCode 특정 오류 코드를 가져옵니다.

적용 대상