Socket.SendToAsync 메서드

정의

오버로드

SendToAsync(SocketAsyncEventArgs)

특정 원격 호스트에 데이터를 비동기적으로 보냅니다.

SendToAsync(ArraySegment<Byte>, EndPoint)

지정된 원격 호스트에 데이터를 보냅니다.

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

지정된 원격 호스트에 데이터를 보냅니다.

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

지정된 원격 호스트에 데이터를 보냅니다.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

지정된 원격 호스트에 데이터를 보냅니다.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

지정된 SocketFlags를 사용하여 특정 엔드포인트에 데이터를 보냅니다.

SendToAsync(SocketAsyncEventArgs)

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

특정 원격 호스트에 데이터를 비동기적으로 보냅니다.

C#
public bool SendToAsync (System.Net.Sockets.SocketAsyncEventArgs e);

매개 변수

e
SocketAsyncEventArgs

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

반환

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

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

예외

e 매개 변수에 지정된 SocketAsyncEventArgs 개체를 사용하여 소켓 작업이 이미 진행 중인 경우

Socket이 닫혔습니다.

연결 지향 프로토콜이 지정되었는데 Socket이 아직 연결되지 않은 경우

설명

메서드는 SendToAsync 매개 변수의 e 속성에 지정된 원격 호스트에 SocketAsyncEventArgs.RemoteEndPoint 비동기 보내기 작업을 시작합니다. 메서드를 SendToAsync 호출하면 별도의 실행 스레드 내에서 데이터를 보낼 수 있습니다. 이 메서드는 연결 없는 프로토콜을 위한 것이지만 연결 SendToAsync 이 없는 프로토콜과 연결 지향 프로토콜 모두에서 작동합니다.

완료 알림을 받으려면 EventHandler<SocketAsyncEventArgs> 대리자를 구현하고 콜백을 이벤트에 연결하는 콜백 메서드를 SocketAsyncEventArgs.Completed 만들어야 합니다.

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

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

연결 지향 프로토콜을 사용하는 경우 먼저 , , , AcceptAsyncBeginAccept, BeginConnectConnect또는 ConnectAsync 메서드를 Accept호출해야 합니다. 그렇지 않으면 SendToAsyncSocketExceptionthrow됩니다. 연결 지향 프로토콜 SendToAsync 을 사용하는 경우 메서드는 속성을 무시하고 SocketAsyncEventArgs.RemoteEndPoint , BeginAcceptAcceptAsyncConnectBeginConnect또는 ConnectAsync 메서드에 Accept설정된 로 데이터를 System.Net.EndPoint 보냅니다.

연결 없는 프로토콜을 사용하는 경우 를 호출SendToAsync하기 전에 , Connect또는 ConnectAsync 메서드를 BeginConnect사용하여 기본 원격 호스트를 설정할 필요가 없습니다. 또는 SendAsync 메서드를 호출 BeginSend 하려는 경우에만 이 작업을 수행해야 합니다. 를 호출하기 전에 , 또는 메서드를 호출BeginConnectSendToAsync하는 경우 속성은 SocketAsyncEventArgs.RemoteEndPoint 해당 보내기 작업에 대해서만 지정된 기본 원격 호스트를 재정의합니다.ConnectAsyncConnect 또한 메서드를 호출 Bind 할 필요가 없습니다. 이 경우 기본 서비스 공급자는 가장 적절한 로컬 네트워크 IP 주소 및 포트 번호를 할당합니다. 기본 서비스 공급자가 무료 포트를 선택하려면 포트 번호 0을 사용합니다. 할당된 로컬 네트워크 IP 주소 및 포트 번호를 식별해야 하는 경우 이벤트가 신호를 받고 연결된 대리자를 호출한 후 SocketAsyncEventArgs.Completed 속성을 사용할 LocalEndPoint 수 있습니다.

브로드캐스트 주소로 데이터를 보내려면 먼저 메서드를 SetSocketOption 호출하고 에 대한 SocketOptionName.Broadcast 소켓 옵션을 true로 설정해야 합니다. 또한 버퍼의 크기가 기본 서비스 공급자의 최대 패킷 크기를 초과하지 않는지 확인해야 합니다. 이 경우 데이터그램은 전송 SendToAsync 되지 않고 을 throw합니다 SocketException.

속성에서 DontRoute 플래그를 SocketAsyncEventArgs.SocketFlags 지정하면 보내는 데이터가 라우팅되지 않습니다.

메시지 지향 소켓의 경우 기본 전송의 최대 메시지 크기를 초과하지 않도록 주의해야 합니다. 버퍼의 크기가 기본 서비스 공급자의 최대 패킷 크기를 초과하면 데이터그램이 전송 SendToAsync 되지 않고 가 SocketExceptionthrow됩니다. 메서드가 SendToAsync 성공적으로 완료되었다고 해서 데이터가 성공적으로 전달되었음을 의미하지는 않습니다.

추가 정보

적용 대상

.NET 9 및 기타 버전
제품 버전
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

SendToAsync(ArraySegment<Byte>, EndPoint)

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

지정된 원격 호스트에 데이터를 보냅니다.

C#
public System.Threading.Tasks.Task<int> SendToAsync (ArraySegment<byte> buffer, System.Net.EndPoint remoteEP);

매개 변수

buffer
ArraySegment<Byte>

보낼 데이터의 버퍼입니다.

remoteEP
EndPoint

데이터를 보낼 원격 호스트입니다.

반환

전송된 바이트 수로 완료되는 비동기 작업입니다.

예외

remoteEP이(가) null인 경우

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

Socket이 닫혔습니다.

적용 대상

.NET 9 및 기타 버전
제품 버전
.NET 7, 8, 9

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

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

지정된 원격 호스트에 데이터를 보냅니다.

C#
public System.Threading.Tasks.Task<int> SendToAsync (ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP);

매개 변수

buffer
ArraySegment<Byte>

보낼 데이터의 버퍼입니다.

socketFlags
SocketFlags

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

remoteEP
EndPoint

데이터를 보낼 원격 호스트입니다.

반환

전송된 바이트 수로 완료되는 비동기 작업입니다.

예외

remoteEP이(가) null인 경우

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

Socket이 닫혔습니다.

적용 대상

.NET 9 및 기타 버전
제품 버전
.NET 6, 7, 8, 9

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

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

지정된 원격 호스트에 데이터를 보냅니다.

C#
public System.Threading.Tasks.ValueTask<int> SendToAsync (ReadOnlyMemory<byte> buffer, System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken = default);

매개 변수

buffer
ReadOnlyMemory<Byte>

보낼 데이터의 버퍼입니다.

remoteEP
EndPoint

데이터를 보낼 원격 호스트입니다.

cancellationToken
CancellationToken

비동기 작업을 취소하는 데 사용할 수 있는 취소 토큰입니다.

반환

전송된 바이트 수로 완료되는 비동기 작업입니다.

예외

remoteEP이(가) null인 경우

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

Socket이 닫혔습니다.

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

적용 대상

.NET 9 및 기타 버전
제품 버전
.NET 7, 8, 9

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

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

지정된 원격 호스트에 데이터를 보냅니다.

C#
public System.Threading.Tasks.ValueTask<int> SendToAsync (ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken = default);

매개 변수

buffer
ReadOnlyMemory<Byte>

보낼 데이터의 버퍼입니다.

socketFlags
SocketFlags

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

remoteEP
EndPoint

데이터를 보낼 원격 호스트입니다.

cancellationToken
CancellationToken

비동기 작업을 취소하는 데 사용할 수 있는 취소 토큰입니다.

반환

전송된 바이트 수로 완료되는 비동기 작업입니다.

예외

remoteEP이(가) null인 경우

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

Socket이 닫혔습니다.

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

적용 대상

.NET 9 및 기타 버전
제품 버전
.NET 6, 7, 8, 9

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)

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

지정된 SocketFlags를 사용하여 특정 엔드포인트에 데이터를 보냅니다.

C#
public System.Threading.Tasks.ValueTask<int> SendToAsync (ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.SocketAddress socketAddress, System.Threading.CancellationToken cancellationToken = default);

매개 변수

buffer
ReadOnlyMemory<Byte>

보낼 데이터의 버퍼입니다.

socketFlags
SocketFlags

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

socketAddress
SocketAddress

데이터의 대상을 나타내는 SocketAddress입니다.

cancellationToken
CancellationToken

비동기 작업을 취소하는 데 사용할 수 있는 취소 토큰입니다.

반환

전송된 바이트 수로 완료되는 비동기 작업입니다.

예외

socketAddress이(가) null인 경우

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

Socket이 닫혔습니다.

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

적용 대상

.NET 9 및 .NET 8
제품 버전
.NET 8, 9