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)

接続されているソケットにデータを送信します。

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)

接続されているソケットにデータを送信します。

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 値のビットごとの組み合わせ。

戻り値

送信されたバイト数で完了する非同期タスク。

例外

buffersnullです。

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

注釈

このメソッドは、メソッドの同期例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクが待機されたときにスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって Send(IList<ArraySegment<Byte>>, SocketFlags)スローされる例外に関するページを参照してください。

適用対象

SendAsync(ArraySegment<Byte>, SocketFlags)

接続されているソケットにデータを送信します。

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)

接続されているソケットにデータを送信します。

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>>)

接続されているソケットにデータを送信します。

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>>

送信するデータのバッファーの一覧。

戻り値

送信されたバイト数で完了する非同期タスク。

例外

buffersnullです。

ソケットへのアクセスを試行しているときにエラーが発生しました。

Socket が閉じられました。

注釈

このメソッドは、メソッドの同期例外がスローできる非使用例外をすべて返すタスクに格納します。 返されたタスクに例外が格納されている場合、その例外はタスクが待機されたときにスローされます。 などの ArgumentException使用例外は、引き続き同期的にスローされます。 格納されている例外については、 によって Send(IList<ArraySegment<Byte>>)スローされる例外に関するページを参照してください。

適用対象

SendAsync(ArraySegment<Byte>)

接続されているソケットにデータを送信します。

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)

接続されている 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 プロパティは、有効なバッファーを参照する必要があります。 これらのプロパティは、どちらか 1 つを設定できます。一度に両方のプロパティを設定することはできません。

e パラメーターに指定された SocketAsyncEventArgs オブジェクトを使用してソケット操作が既に進行していました。

Socket が閉じられました。

Socket がまだ接続されていないか、Accept()AcceptAsync(SocketAsyncEventArgs)、または BeginAccept の各メソッドによって取得されませんでした。

注釈

メソッドは SendAsync 、接続指向ソケット上の 1 つ以上のバッファーから送信データを書き込むのに使用されます。 ただし、このメソッドは、接続操作でリモート ホストを指定したコネクションレス ソケットでも使用できます。

メソッドはSendAsync、、ConnectAcceptAsyncBeginAcceptBeginConnectまたは ConnectAsync メソッドでAccept確立されたリモート ホストへの非同期送信操作を開始します。

このメソッドを正常に呼び出すには、オブジェクトの System.Net.Sockets.SocketAsyncEventArgs 次のプロパティとイベントが必要です。

呼び出し元は、コールバック メソッドで情報を取得できるように、 メソッドをSendAsync呼び出す前に必要な任意のユーザー状態オブジェクトに プロパティを設定SocketAsyncEventArgs.UserTokenできます。 コールバックで 1 つのオブジェクトよりも多くの情報が必要な場合は、他の必須状態情報をメンバーとして保持する小さなクラスを作成できます。

メソッドはSendAsync、、、または ConnectAsyncを最初に呼び出AcceptBeginConnectAcceptAsyncBeginAcceptConnectさない場合に例外をスローします。

メソッドを SendAsync 呼び出すと、別の実行スレッド内でデータを送信できます。

メッセージ指向ソケットの場合は、基になる Windows ソケット サービス プロバイダーの最大メッセージ サイズを超えないでください。 データが長すぎて基になるサービス プロバイダーをアトミックに渡すことができない場合、データは送信されません SendAsync 。メソッドは、 をネイティブ Winsock WSAEMSGSIZE エラー コード (10040) に設定して をスロー SocketExceptionSocketAsyncEventArgs.SocketError します。

メソッドが正常に完了しても、 SendAsync データが正常に配信されたことは示されないことに注意してください。

こちらもご覧ください

適用対象