Socket.ReceiveMessageFromAsync 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
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
매개 변수
이 비동기 소켓 작업에 사용할 SocketAsyncEventArgs 개체입니다.
반환
I/O 작업이 보류 중인 경우 true
입니다. 작업이 완료되면 e
매개 변수에 대한 Completed 이벤트가 발생합니다.
I/O 작업이 동기적으로 완료된 경우 false
입니다. 이 경우에는 e
매개 변수에서 Completed 이벤트가 발생하지 않으며, 메서드 호출이 반환된 직후 매개 변수로 전달된 e
개체를 검사하여 작업 결과를 검색할 수 있습니다.
예외
RemoteEndPoint가 null인 경우
Socket이 닫혔습니다.
소켓에 액세스하는 동안 오류가 발생했습니다.
설명
메서드는 ReceiveMessageFromAsync 주로 연결 없는 소켓에서 메시지 데이터를 수신하는 데 사용됩니다. 소켓의 로컬 주소를 알고 있어야 합니다. 이 메서드는 데이터그램 및 원시 소켓에서만 사용할 수 있습니다. 소켓 유형이 로 설정되거나 Raw 이 메서드를 Dgram 호출하기 전에 소켓을 초기화해야 합니다. 이 작업은 를 사용하여 Socket소켓을 생성할 때 수행할 수 있습니다.
호출자는 속성을 EndPoint 원격 호스트의 엔드포인트와 동일한 형식의 로 설정 SocketAsyncEventArgs.RemoteEndPoint 해야 합니다. 속성은 실제 원격 엔드포인트로 성공적으로 수신될 때 업데이트됩니다.
이 메서드를 성공적으로 호출하려면 개체의 System.Net.Sockets.SocketAsyncEventArgs 다음 속성과 이벤트가 필요합니다.
호출자는 콜백 메서드에서 SocketAsyncEventArgs.UserToken 정보를 검색할 수 있도록 메서드를 호출 ReceiveMessageFromAsync 하기 전에 속성을 원하는 사용자 상태 개체로 설정할 수 있습니다. 콜백에 단일 개체보다 더 많은 정보가 필요한 경우 다른 필수 상태 정보를 멤버로 유지하기 위해 작은 클래스를 만들 수 있습니다.
메시지 지향 소켓의 경우 들어오는 메시지가 버퍼의 총 크기까지 버퍼에 배치됩니다. 및 SocketAsyncEventArgs.Offset 속성은 SocketAsyncEventArgs.Count 버퍼에서 데이터가 배치되는 위치와 데이터 양을 결정합니다.
메서드는 ReceiveMessageFromAsync 지정된 Socket에 PacketInformation 대해 처음 호출되는 소켓 옵션을 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)
매개 변수
- 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)
매개 변수
- socketFlags
- SocketFlags
데이터를 받을 때 사용할 SocketFlags 값의 비트 조합입니다.
- remoteEndPoint
- EndPoint
원격 호스트의 엔드포인트와 동일한 형식의 엔드포인트입니다.
- cancellationToken
- CancellationToken
비동기 작업에 신호를 보내는 데 사용될 수 있는 취소 토큰은 취소되어야 합니다.
반환
수신된 바이트 수와 SocketReceiveMessageFromResult 송신 호스트에 대한 추가 정보를 포함하는 로 완료되는 비동기 작업입니다.
예외
Socket 개체가 닫힌 경우
remoteEndPoint
이(가) null
인 경우
이 작업을 수행하기 전에 Bind 메서드를 호출해야 합니다.
취소 토큰이 취소되었습니다. 이 예외는 반환된 작업에 저장됩니다.
적용 대상
.NET