다음을 통해 공유


Socket.SendAsync 메서드

정의

오버로드

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

연결된 소켓에 데이터를 보냅니다.

SendAsync(IList<ArraySegment<Byte>>, SocketFlags)

연결된 소켓에 데이터를 보냅니다.

SendAsync(ArraySegment<Byte>, SocketFlags)

연결된 소켓에 데이터를 보냅니다.

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

연결된 소켓에 데이터를 보냅니다.

SendAsync(IList<ArraySegment<Byte>>)

연결된 소켓에 데이터를 보냅니다.

SendAsync(ArraySegment<Byte>)

연결된 소켓에 데이터를 보냅니다.

SendAsync(SocketAsyncEventArgs)

데이터를 연결된 Socket 개체에 비동기적으로 보냅니다.

SendAsync(ReadOnlyMemory<Byte>, CancellationToken)

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

연결된 소켓에 데이터를 보냅니다.

public System.Threading.Tasks.ValueTask<int> SendAsync (ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
member this.SendAsync : ReadOnlyMemory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendAsync (buffer As ReadOnlyMemory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

매개 변수

buffer
ReadOnlyMemory<Byte>

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

cancellationToken
CancellationToken

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

반환

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

예외

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

적용 대상

SendAsync(IList<ArraySegment<Byte>>, SocketFlags)

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

연결된 소켓에 데이터를 보냅니다.

public:
 System::Threading::Tasks::Task<int> ^ SendAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> SendAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.SendAsync : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Task(Of Integer)

매개 변수

buffers
IList<ArraySegment<Byte>>

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

socketFlags
SocketFlags

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

반환

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

예외

buffers이(가) null인 경우

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

Socket이 닫혔습니다.

설명

이 메서드는 메서드의 동기 대응에서 throw할 수 있는 모든 비사용 예외를 반환하는 작업에 저장됩니다. 예외가 반환된 작업에 저장되면 작업이 대기될 때 해당 예외가 throw됩니다. 와 같은 ArgumentException사용 예외는 여전히 동기적으로 throw됩니다. 저장된 예외는 에서 throw Send(IList<ArraySegment<Byte>>, SocketFlags)된 예외를 참조하세요.

적용 대상

SendAsync(ArraySegment<Byte>, SocketFlags)

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

연결된 소켓에 데이터를 보냅니다.

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

매개 변수

buffer
ArraySegment<Byte>

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

socketFlags
SocketFlags

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

반환

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

예외

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

Socket이 닫혔습니다.

적용 대상

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

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

연결된 소켓에 데이터를 보냅니다.

public System.Threading.Tasks.ValueTask<int> SendAsync (ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default);
member this.SendAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)

매개 변수

buffer
ReadOnlyMemory<Byte>

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

socketFlags
SocketFlags

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

cancellationToken
CancellationToken

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

반환

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

예외

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

Socket이 닫혔습니다.

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

적용 대상

SendAsync(IList<ArraySegment<Byte>>)

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

연결된 소켓에 데이터를 보냅니다.

public:
 System::Threading::Tasks::Task<int> ^ SendAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public System.Threading.Tasks.Task<int> SendAsync (System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.SendAsync : System.Collections.Generic.IList<ArraySegment<byte>> -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffers As IList(Of ArraySegment(Of Byte))) As Task(Of Integer)

매개 변수

buffers
IList<ArraySegment<Byte>>

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

반환

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

예외

buffers이(가) null인 경우

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

Socket이 닫혔습니다.

설명

이 메서드는 메서드의 동기 대응에서 throw할 수 있는 모든 비사용 예외를 반환하는 작업에 저장됩니다. 예외가 반환된 작업에 저장되면 작업이 대기될 때 해당 예외가 throw됩니다. 와 같은 ArgumentException사용 예외는 여전히 동기적으로 throw됩니다. 저장된 예외는 에서 throw Send(IList<ArraySegment<Byte>>)된 예외를 참조하세요.

적용 대상

SendAsync(ArraySegment<Byte>)

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

연결된 소켓에 데이터를 보냅니다.

public:
 System::Threading::Tasks::Task<int> ^ SendAsync(ArraySegment<System::Byte> buffer);
public System.Threading.Tasks.Task<int> SendAsync (ArraySegment<byte> buffer);
member this.SendAsync : ArraySegment<byte> -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffer As ArraySegment(Of Byte)) As Task(Of Integer)

매개 변수

buffer
ArraySegment<Byte>

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

반환

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

예외

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

Socket이 닫혔습니다.

적용 대상

SendAsync(SocketAsyncEventArgs)

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

데이터를 연결된 Socket 개체에 비동기적으로 보냅니다.

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

매개 변수

e
SocketAsyncEventArgs

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

반환

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

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

예외

e 매개 변수의 Buffer 또는 BufferList 속성이 올바른 버퍼를 참조하지 않는 경우. 이러한 속성 중 하나를 설정할 수 있지만 두 속성을 동시에 설정할 수는 없습니다.

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

Socket이 닫혔습니다.

Socket이 아직 연결되지 않았거나 Accept(), AcceptAsync(SocketAsyncEventArgs) 또는 BeginAccept 메서드를 통해 소켓을 가져오지 못한 경우

설명

메서드는 SendAsync 연결 지향 소켓에 하나 이상의 버퍼에서 나가는 데이터를 쓰는 데 사용됩니다. 그러나 연결 작업에서 원격 호스트를 지정한 연결 없는 소켓에서도 이 메서드를 사용할 수 있습니다.

메서드는 SendAsync , , AcceptAsync, ConnectBeginAcceptBeginConnect, 또는 ConnectAsync 메서드에 설정된 원격 호스트로 Accept비동기 전송 작업을 시작합니다.

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

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

메서드는 SendAsync 먼저 , , , BeginAcceptBeginConnectConnect또는 를 AcceptAsync호출Accept하지 않으면 예외를 throw합니다.ConnectAsync

메서드를 SendAsync 호출하면 별도의 실행 스레드 내에서 데이터를 보낼 수 있습니다.

메시지 지향 소켓의 경우 기본 Windows 소켓 서비스 공급자의 최대 메시지 크기를 초과하지 마세요. 데이터가 기본 서비스 공급자를 통해 원자성으로 전달하기에 너무 긴 경우 데이터가 전송되지 않고 SendAsync 메서드가 기본 Winsock WSAEMSGSIZE 오류 코드(10040)로 설정된 를 throw SocketExceptionSocketAsyncEventArgs.SocketError 합니다.

메서드가 성공적으로 완료되었다고 SendAsync 해서 데이터가 성공적으로 전달되었음을 의미하지는 않습니다.

추가 정보

적용 대상