다음을 통해 공유


Socket.BeginReceiveMessageFrom 메서드

정의

비동기적으로 지정된 SocketFlags를 사용하여 데이터 버퍼의 특정 위치로 지정된 바이트 수의 데이터를 받고 엔드포인트 및 패킷 정보를 저장하기 시작합니다.

public:
 IAsyncResult ^ BeginReceiveMessageFrom(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ % remoteEP, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback? callback, object? state);
public IAsyncResult BeginReceiveMessageFrom (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, AsyncCallback callback, object state);
member this.BeginReceiveMessageFrom : byte[] * int * int * System.Net.Sockets.SocketFlags * EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginReceiveMessageFrom (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef remoteEP As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult

매개 변수

buffer
Byte[]

수신된 데이터에 대한 스토리지 위치인 Byte 형식의 배열입니다.

offset
Int32

데이터를 저장하기 위한 buffer 매개 변수의 위치(0부터 시작)입니다.

size
Int32

수신 바이트 수입니다.

socketFlags
SocketFlags

SocketFlags 값의 비트 조합입니다.

remoteEP
EndPoint

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

callback
AsyncCallback

AsyncCallback 대리자입니다.

state
Object

이 요청에 대한 상태 정보를 포함하는 개체입니다.

반환

비동기 읽기를 참조하는 IAsyncResult입니다.

예외

buffernull입니다.

또는

remoteEPnull입니다.

.NET Framework 및 .NET 5 이하만 해당: 소켓에 액세스하려고 할 때 오류가 발생했습니다.

offset 가 0보다 작습니다.

또는

offsetbuffer의 길이보다 큽니다.

또는

size 가 0보다 작습니다.

또는

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

Socket이 닫혔습니다.

설명

중요

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

를 구현하는 콜백을 AsyncCallbackBeginReceiveMessageFrom 전달하여 작업 완료에 대한 알림을 받을 수 있습니다. 기본 네트워크 스택이 동기적으로 작업을 완료하는 경우 콜백은 를 호출 BeginReceiveMessageFrom하는 동안 인라인으로 실행됩니다. 이 경우 반환 IAsyncResult 된 의 CompletedSynchronously 속성이 로 설정 true 되어 메서드가 동기적으로 완료되었음을 나타냅니다. 사용 하 여는 의 AsyncStateIAsyncResult 속성을 메서드에 전달 된 상태 개체를 BeginReceiveMessageFrom 가져옵니다.

메서드를 호출 EndReceiveMessageFrom 하여 비동 BeginReceiveMessageFrom 기 작업을 완료해야 합니다. 일반적으로 메서드는 대리자에서 호출됩니다 AsyncCallback . EndReceiveMessageFrom 는 작업이 완료될 때까지 호출 스레드를 차단합니다.

보류 중인 BeginReceiveMessageFrom를 취소하려면 메서드를 호출합니다 Close .

이 메서드는 매개 변수로 buffer 데이터를 읽고 데이터가 전송되는 원격 호스트 엔드포인트와 수신된 패킷에 대한 정보를 캡처합니다. 이 엔드포인트를 검색하는 방법에 대한 자세한 내용은 을 참조하세요 EndReceiveMessageFrom. 이 메서드는 알 수 없는 호스트 또는 여러 호스트에서 연결 없는 데이터그램을 비동기적으로 수신하려는 경우에 가장 유용합니다.

참고

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

참고

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

참고

실행 컨텍스트(보안 컨텍스트, 가장된 사용자 및 호출 컨텍스트)는 비동 Socket 기 메서드에 대해 캐시됩니다. 특정 컨텍스트(특정 비동 Socket 기 메서드, 특정 instance 및 특정 Socket 콜백)를 처음 사용한 후 해당 컨텍스트를 나중에 사용하면 성능이 향상됩니다.

적용 대상