Language

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)

ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs
ソース:
Socket.cs

特定のリモート ホストに非同期的にデータを送信します。

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

パラメーター

e
SocketAsyncEventArgs

この非同期ソケット操作に使用する SocketAsyncEventArgs オブジェクト。

返品

true I/O 操作が保留中の場合は 。 Completed パラメーターのe イベントは、操作の完了時に発生します。

false I/O 操作が同期的に完了した場合は > この場合、Completed パラメーターの e イベントは発生せず、メソッド呼び出しが戻った直後にパラメーターとして渡されたe オブジェクトを調べて、操作の結果を取得できます。

例外

RemoteEndPointを null にすることはできません。

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

Socketが閉じられました。

指定されたプロトコルは接続指向ですが、 Socket はまだ接続されていません。

注釈

SendToAsync メソッドは、SocketAsyncEventArgs.RemoteEndPoint パラメーターのe プロパティで指定されたリモート ホストへの非同期送信操作を開始します。 SendToAsync メソッドを呼び出すと、別の実行スレッド内でデータを送信できます。 このメソッドはコネクションレス プロトコルを対象としていますが、 SendToAsync はコネクションレス プロトコルと接続指向プロトコルの両方で動作します。

完了を通知するには、EventHandler<SocketAsyncEventArgs> デリゲートを実装し、コールバックを SocketAsyncEventArgs.Completed イベントにアタッチするコールバック メソッドを作成する必要があります。

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

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

接続指向プロトコルを使用している場合は、まず、 Accept、 AcceptAsync、 BeginAccept、 BeginConnect、 Connect、または ConnectAsync メソッドを呼び出す必要があります。 それ以外の場合、 SendToAsync は SocketExceptionをスローします。 接続指向プロトコルを使用する場合、SendToAsyncメソッドはSocketAsyncEventArgs.RemoteEndPointプロパティを無視し、System.Net.EndPoint、Accept、AcceptAsync、BeginAccept、BeginConnect、またはConnectメソッドで確立されたConnectAsyncにデータを送信します。

コネクションレス プロトコルを使用している場合は、BeginConnectを呼び出す前に、Connect、ConnectAsync、またはSendToAsyncメソッドを使用して既定のリモート ホストを確立する必要はありません。 これは、 BeginSend または SendAsync メソッドを呼び出す場合にのみ必要です。 BeginConnectを呼び出す前にConnect、ConnectAsync、またはSendToAsyncメソッドを呼び出した場合、SocketAsyncEventArgs.RemoteEndPoint プロパティはその送信操作に対してのみ、指定された既定のリモート ホストをオーバーライドします。 また、 Bind メソッドを呼び出す必要はありません。 この場合、基になるサービス プロバイダーは、最も適切なローカル ネットワーク IP アドレスとポート番号を割り当てます。 基になるサービス プロバイダーが空きポートを選択する場合は、0 のポート番号を使用します。 割り当てられたローカル ネットワーク IP アドレスとポート番号を識別する必要がある場合は、LocalEndPoint イベントが通知され、関連付けられているデリゲートが呼び出された後に、SocketAsyncEventArgs.Completed プロパティを使用できます。

ブロードキャスト アドレスにデータを送信する場合は、最初に SetSocketOption メソッドを呼び出し、 SocketOptionName.Broadcast のソケット オプションを true に設定する必要があります。 また、バッファーのサイズが、基になるサービス プロバイダーの最大パケット サイズを超えないようにする必要があります。 送信された場合、データグラムは送信されず、 SendToAsync は SocketExceptionをスローします。

SocketAsyncEventArgs.SocketFlags プロパティで DontRoute フラグを指定した場合、送信するデータはルーティングされません。

メッセージ指向ソケットの場合は、基になるトランスポートの最大メッセージ サイズを超えないように注意する必要があります。 バッファーのサイズが基になるサービス プロバイダーの最大パケット サイズを超えた場合、データグラムは送信されず、 SendToAsync は SocketExceptionをスローします。 SendToAsync メソッドが正常に完了しても、データが正常に配信されたことは示されません。

こちらもご覧ください

適用対象

SendToAsync(ArraySegment<Byte>, EndPoint)

ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs

指定したリモート ホストにデータを送信します。

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

パラメーター

buffer
ArraySegment<Byte>

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

remoteEP
EndPoint

データの送信先となるリモート ホスト。

返品

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

例外

remoteEP は nullです。

ソケットにアクセスしようとしたときにエラーが発生しました。

Socketが閉じられました。

適用対象

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs

指定したリモート ホストにデータを送信します。

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

パラメーター

buffer
ArraySegment<Byte>

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

socketFlags
SocketFlags

データの送信時に使用される SocketFlags 値のビットごとの組み合わせ。

remoteEP
EndPoint

データの送信先となるリモート ホスト。

返品

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

例外

remoteEP は nullです。

ソケットにアクセスしようとしたときにエラーが発生しました。

Socketが閉じられました。

適用対象

SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)

ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs

指定したリモート ホストにデータを送信します。

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

パラメーター

buffer
ReadOnlyMemory<Byte>

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

remoteEP
EndPoint

データの送信先となるリモート ホスト。

cancellationToken
CancellationToken

非同期操作を取り消すために使用できるキャンセル トークン。

返品

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

例外

remoteEP は nullです。

ソケットにアクセスしようとしたときにエラーが発生しました。

Socketが閉じられました。

キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。

適用対象

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

ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs

指定したリモート ホストにデータを送信します。

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

パラメーター

buffer
ReadOnlyMemory<Byte>

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

socketFlags
SocketFlags

データの送信時に使用される SocketFlags 値のビットごとの組み合わせ。

remoteEP
EndPoint

データの送信先となるリモート ホスト。

cancellationToken
CancellationToken

非同期操作を取り消すために使用できるキャンセル トークン。

返品

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

例外

remoteEP は nullです。

ソケットにアクセスしようとしたときにエラーが発生しました。

Socketが閉じられました。

キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。

適用対象

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

ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs
ソース:
Socket.Tasks.cs

指定した SocketFlagsを使用して、特定のエンドポイントにデータを送信します。

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

パラメーター

buffer
ReadOnlyMemory<Byte>

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

socketFlags
SocketFlags

データの送信時に使用される SocketFlags 値のビットごとの組み合わせ。

socketAddress
SocketAddress

データの宛先を表す SocketAddress 。

cancellationToken
CancellationToken

非同期操作を取り消すために使用できるキャンセル トークン。

返品

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

例外

socketAddress は nullです。

ソケットにアクセスしようとしたときにエラーが発生しました。

Socketが閉じられました。

キャンセル トークンが取り消されました。 この例外は、返されたタスクに格納されます。

適用対象