Socket.SendAsync 메서드
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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 개체에 비동기적으로 보냅니다. |
- 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
비동기 작업을 취소하는 데 사용할 수 있는 취소 토큰입니다.
반환
전송된 바이트 수로 완료되는 비동기 작업입니다.
예외
취소 토큰이 취소되었습니다. 이 예외는 반환된 작업에 저장됩니다.
적용 대상
.NET 9 및 기타 버전
제품 | 버전 |
---|---|
.NET | 7, 8, 9 |
- 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)된 예외를 참조하세요.
적용 대상
.NET 9 및 기타 버전
제품 | 버전 |
---|---|
.NET | 6, 7, 8, 9 |
- 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이 닫혔습니다.
적용 대상
.NET 9 및 기타 버전
제품 | 버전 |
---|---|
.NET | 6, 7, 8, 9 |
- 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이 닫혔습니다.
취소 토큰이 취소되었습니다. 이 예외는 반환된 작업에 저장됩니다.
적용 대상
.NET 9 및 기타 버전
제품 | 버전 |
---|---|
.NET | 6, 7, 8, 9 |
- 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>>)된 예외를 참조하세요.
적용 대상
.NET 9 및 기타 버전
제품 | 버전 |
---|---|
.NET | 7, 8, 9 |
- 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이 닫혔습니다.
적용 대상
.NET 9 및 기타 버전
제품 | 버전 |
---|---|
.NET | 7, 8, 9 |
- 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
매개 변수
이 비동기 소켓 작업에 사용할 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.Buffer 또는 SocketAsyncEventArgs.BufferList
SocketAsyncEventArgs.Count가 설정된 경우 SocketAsyncEventArgs.Buffer
SocketAsyncEventArgs.Offset가 설정된 경우 SocketAsyncEventArgs.Buffer
호출자는 콜백 메서드에서 SocketAsyncEventArgs.UserToken 정보를 검색할 수 있도록 메서드를 호출 SendAsync 하기 전에 속성을 원하는 사용자 상태 개체로 설정할 수 있습니다. 콜백에 단일 개체보다 더 많은 정보가 필요한 경우 다른 필수 상태 정보를 멤버로 유지하기 위해 작은 클래스를 만들 수 있습니다.
메서드는 SendAsync 먼저 , , , BeginAcceptBeginConnectConnect또는 를 AcceptAsync호출Accept하지 않으면 예외를 throw합니다.ConnectAsync
메서드를 SendAsync 호출하면 별도의 실행 스레드 내에서 데이터를 보낼 수 있습니다.
메시지 지향 소켓의 경우 기본 Windows 소켓 서비스 공급자의 최대 메시지 크기를 초과하지 마세요. 데이터가 기본 서비스 공급자를 통해 원자성으로 전달하기에 너무 긴 경우 데이터가 전송되지 않고 SendAsync 메서드가 기본 Winsock WSAEMSGSIZE 오류 코드(10040)로 설정된 를 throw SocketExceptionSocketAsyncEventArgs.SocketError 합니다.
메서드가 성공적으로 완료되었다고 SendAsync 해서 데이터가 성공적으로 전달되었음을 의미하지는 않습니다.
추가 정보
적용 대상
.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 |
.NET 피드백
.NET은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.