Socket.ReceiveMessageFromAsync 메서드

정의

오버로드

ReceiveMessageFromAsync(SocketAsyncEventArgs)

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

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

데이터를 수신하고 메시지 보낸 사람에게 대한 추가 정보를 반환합니다.

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

데이터를 수신하고 메시지 보낸 사람에게 대한 추가 정보를 반환합니다.

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

데이터를 수신하고 메시지 보낸 사람에게 대한 추가 정보를 반환합니다.

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

데이터를 수신하고 메시지 보낸 사람에게 대한 추가 정보를 반환합니다.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

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

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

public:
 bool ReceiveMessageFromAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool ReceiveMessageFromAsync (System.Net.Sockets.SocketAsyncEventArgs e);
member this.ReceiveMessageFromAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function ReceiveMessageFromAsync (e As SocketAsyncEventArgs) As Boolean

매개 변수

e
SocketAsyncEventArgs

이 비동기 소켓 작업에 사용할 SocketAsyncEventArgs 개체입니다.

반환

I/O 작업이 보류 중인 경우 true입니다. 작업이 완료되면 e 매개 변수에 대한 Completed 이벤트가 발생합니다.

I/O 작업이 동기적으로 완료된 경우 false입니다. 이 경우에는 e 매개 변수에서 Completed 이벤트가 발생하지 않으며, 메서드 호출이 반환된 직후 매개 변수로 전달된 e 개체를 검사하여 작업 결과를 검색할 수 있습니다.

예외

Socket이 닫혔습니다.

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

설명

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

호출자는 속성을 EndPoint 원격 호스트의 엔드포인트와 동일한 형식의 로 설정 SocketAsyncEventArgs.RemoteEndPoint 해야 합니다. 속성은 성공적인 수신 시 실제 원격 엔드포인트로 업데이트됩니다.

이 메서드를 성공적으로 호출하려면 개체의 System.Net.Sockets.SocketAsyncEventArgs 다음 속성과 이벤트가 필요합니다.

호출자는 콜백 메서드에서 SocketAsyncEventArgs.UserToken 정보를 검색할 수 있도록 메서드를 호출 ReceiveMessageFromAsync 하기 전에 속성을 원하는 사용자 상태 개체로 설정할 수 있습니다. 콜백에 단일 개체보다 더 많은 정보가 필요한 경우 다른 필수 상태 정보를 멤버로 유지하기 위해 작은 클래스를 만들 수 있습니다.

메시지 지향 소켓의 경우 들어오는 메시지가 버퍼의 총 크기까지 버퍼에 배치됩니다. 및 SocketAsyncEventArgs.Offset 속성은 SocketAsyncEventArgs.Count 버퍼에서 데이터가 배치되는 위치와 데이터 양을 결정합니다.

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

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

애플리케이션에서 결과 검사할 수 IPPacketInformation 유니캐스트, 멀티 캐스트 또는 브로드캐스트 주소를 사용 하 여 데이터 그램을 보냈는지 확인 해야 하는 경우 개체입니다.

추가 정보

적용 대상

ReceiveMessageFromAsync(ArraySegment<Byte>, EndPoint)

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

데이터를 수신하고 메시지 보낸 사람에게 대한 추가 정보를 반환합니다.

public:
 System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveMessageFromResult> ^ ReceiveMessageFromAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (ArraySegment<byte> buffer, System.Net.EndPoint remoteEndPoint);
member this.ReceiveMessageFromAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As ArraySegment(Of Byte), remoteEndPoint As EndPoint) As Task(Of SocketReceiveMessageFromResult)

매개 변수

buffer
ArraySegment<Byte>

받은 데이터의 버퍼입니다.

remoteEndPoint
EndPoint

원격 호스트의 엔드포인트와 동일한 형식의 엔드포인트입니다.

반환

수신된 바이트 수와 SocketReceiveMessageFromResult 송신 호스트에 대한 추가 정보를 포함하는 로 완료되는 비동기 작업입니다.

예외

Socket 개체가 닫힌 경우

remoteEndPoint이(가) null인 경우

이 작업을 수행하기 전에 Bind 메서드를 호출해야 합니다.

적용 대상

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

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

데이터를 수신하고 메시지 보낸 사람에게 대한 추가 정보를 반환합니다.

public:
 System::Threading::Tasks::Task<System::Net::Sockets::SocketReceiveMessageFromResult> ^ ReceiveMessageFromAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEndPoint);
public System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint);
member this.ReceiveMessageFromAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> System.Threading.Tasks.Task<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint) As Task(Of SocketReceiveMessageFromResult)

매개 변수

buffer
ArraySegment<Byte>

받은 데이터의 버퍼입니다.

socketFlags
SocketFlags

데이터를 받을 때 사용할 SocketFlags 값의 비트 조합입니다.

remoteEndPoint
EndPoint

원격 호스트의 엔드포인트와 동일한 형식의 엔드포인트입니다.

반환

수신된 바이트 수와 SocketReceiveMessageFromResult 송신 호스트에 대한 추가 정보를 포함하는 로 완료되는 비동기 작업입니다.

예외

Socket 개체가 닫힌 경우

remoteEndPoint이(가) null인 경우

이 작업을 수행하기 전에 Bind 메서드를 호출해야 합니다.

적용 대상

ReceiveMessageFromAsync(Memory<Byte>, EndPoint, CancellationToken)

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

데이터를 수신하고 메시지 보낸 사람에게 대한 추가 정보를 반환합니다.

public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (Memory<byte> buffer, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveMessageFromAsync : Memory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As Memory(Of Byte), remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveMessageFromResult)

매개 변수

buffer
Memory<Byte>

받은 데이터의 버퍼입니다.

remoteEndPoint
EndPoint

원격 호스트의 엔드포인트와 동일한 형식의 엔드포인트입니다.

cancellationToken
CancellationToken

비동기 작업에 신호를 보내는 데 사용될 수 있는 취소 토큰은 취소되어야 합니다.

반환

수신된 바이트 수와 SocketReceiveMessageFromResult 송신 호스트에 대한 추가 정보를 포함하는 로 완료되는 비동기 작업입니다.

예외

Socket 개체가 닫힌 경우

remoteEndPoint이(가) null인 경우

이 작업을 수행하기 전에 Bind 메서드를 호출해야 합니다.

취소 토큰이 취소되었습니다. 이 예외는 반환된 작업에 저장됩니다.

적용 대상

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

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

데이터를 수신하고 메시지 보낸 사람에게 대한 추가 정보를 반환합니다.

public System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult> ReceiveMessageFromAsync (Memory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEndPoint, System.Threading.CancellationToken cancellationToken = default);
member this.ReceiveMessageFromAsync : Memory<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<System.Net.Sockets.SocketReceiveMessageFromResult>
Public Function ReceiveMessageFromAsync (buffer As Memory(Of Byte), socketFlags As SocketFlags, remoteEndPoint As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of SocketReceiveMessageFromResult)

매개 변수

buffer
Memory<Byte>

받은 데이터의 버퍼입니다.

socketFlags
SocketFlags

데이터를 받을 때 사용할 SocketFlags 값의 비트 조합입니다.

remoteEndPoint
EndPoint

원격 호스트의 엔드포인트와 동일한 형식의 엔드포인트입니다.

cancellationToken
CancellationToken

비동기 작업에 신호를 보내는 데 사용될 수 있는 취소 토큰은 취소되어야 합니다.

반환

수신된 바이트 수와 SocketReceiveMessageFromResult 송신 호스트에 대한 추가 정보를 포함하는 로 완료되는 비동기 작업입니다.

예외

Socket 개체가 닫힌 경우

remoteEndPoint이(가) null인 경우

이 작업을 수행하기 전에 Bind 메서드를 호출해야 합니다.

취소 토큰이 취소되었습니다. 이 예외는 반환된 작업에 저장됩니다.

적용 대상