Socket.BeginSend メソッド

定義

接続されている Socket にデータを非同期的に送信します。

オーバーロード

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

接続されている Socket にデータを非同期的に送信します。

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

接続されている Socket にデータを非同期的に送信します。

BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

接続されている Socket にデータを非同期的に送信します。

BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

接続されている Socket にデータを非同期的に送信します。

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

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

接続されている Socket にデータを非同期的に送信します。

public:
 IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

buffers
IList<ArraySegment<Byte>>

送信するデータを格納する Byte 型の配列。

socketFlags
SocketFlags

SocketFlags 値のビットごとの組み合わせ。

callback
AsyncCallback

AsyncCallback デリゲート。

state
Object

この要求の状態情報を格納するオブジェクト。

戻り値

非同期の送信を参照する IAsyncResult

例外

buffersnullです。

buffers が空です。

.NET Framework および .NET 5 以前のみ: ソケットにアクセスしようとしたときにエラーが発生しました。 以下の解説を参照してください。

Socket が閉じられました。

注釈

重要

これは互換性 API です。 新しい開発に APM (Begin* および End*) メソッドを使用することはお勧めしません。 代わりに、 ベースの Task同等のものを使用します。

を実装AsyncCallbackBeginSendするコールバックを渡して、操作の完了に関する通知を受け取ることができます。 基になるネットワーク スタックが同期的に操作を完了すると、 への呼び出し BeginSend中にコールバックがインラインで実行されることに注意してください。 この場合、 CompletedSynchronously 返される IAsyncResult の プロパティは に true 設定され、メソッドが同期的に完了したことを示します。 メソッドに AsyncState 渡される状態オブジェクトを取得するには、 の プロパティ IAsyncResultBeginSend 使用します。

非同期 BeginSend 操作は、 メソッドを呼び出して完了する EndSend 必要があります。 通常、 メソッドはデリゲートによって AsyncCallback 呼び出されます。 EndSend は、操作が完了するまで呼び出し元のスレッドをブロックします。

接続指向プロトコルを対象としていますが、 BeginSend または メソッドを最初に呼び出してConnectBeginConnect既定のリモート ホストを確立する場合は、コネクションレス プロトコルでも機能します。 コネクションレス プロトコルを使用していて、複数の異なるホストにデータを送信する予定の場合は、 を使用 BeginSendToする必要があります。 を使用して既定のリモート ホストConnectを確立した後でも、 を使用BeginSendToしても問題ありません。 または を別の呼び出しで呼び出BeginSendす前に、既定のリモート ホストをConnectBeginConnect変更することもできます。 コネクションレス プロトコルでは、バッファーのサイズが基になるサービス プロバイダーの最大パケット サイズを超えないようにする必要もあります。 送信された場合、データグラムは送信されず、 BeginSendSocketExceptionスローされます。

パラメーターとして フラグを DontRoute 指定した socketflags 場合、送信するデータはルーティングされません。

注意

を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。

注意

特定のスレッドによって開始されたすべての I/O は、そのスレッドが終了すると取り消されます。 保留中の非同期操作は、操作が完了する前にスレッドが終了すると失敗する可能性があります。

注意

state は、ユーザー定義クラスのインスタンス化です。

注意

送信が正常に完了しても、データが正常に配信されたことを示すものではありません。 転送するデータを保持するためにトランスポート・システム内に使用可能なバッファー・スペースがない場合、ソケットが非ブロッキング・モードに入っていない限り、send はブロックします。

Note

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。

注意

実行コンテキスト (セキュリティ コンテキスト、偽装されたユーザー、および呼び出し元のコンテキスト) は、非同期 Socket メソッド用にキャッシュされます。 特定のコンテキスト (特定の非同期 Socket メソッド、特定 Socket のインスタンス、および特定のコールバック) を最初に使用した後、そのコンテキストを後続で使用すると、パフォーマンスが向上します。

こちらもご覧ください

適用対象

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

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

接続されている Socket にデータを非同期的に送信します。

public:
 IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

buffers
IList<ArraySegment<Byte>>

送信するデータを格納する Byte 型の配列。

socketFlags
SocketFlags

SocketFlags 値のビットごとの組み合わせ。

errorCode
SocketError

ソケット エラーを格納する SocketError オブジェクト。

callback
AsyncCallback

AsyncCallback デリゲート。

state
Object

この要求の状態情報を格納するオブジェクト。

戻り値

非同期の送信を参照する IAsyncResult

例外

buffersnullです。

buffers が空です。

.NET Framework および .NET 5 以前のみ: ソケットにアクセスしようとしたときにエラーが発生しました。 以下の解説を参照してください。

Socket が閉じられました。

注釈

重要

これは互換性 API です。 新しい開発に APM (Begin* および End*) メソッドを使用することはお勧めしません。 代わりに、 ベースの Task同等のものを使用します。

を実装AsyncCallbackBeginSendするコールバックを渡して、操作の完了に関する通知を受け取ることができます。 基になるネットワーク スタックが同期的に操作を完了すると、 への呼び出し BeginSend中にコールバックがインラインで実行されることに注意してください。 この場合、 CompletedSynchronously 返される IAsyncResult の プロパティは に true 設定され、メソッドが同期的に完了したことを示します。 メソッドに AsyncState 渡される状態オブジェクトを取得するには、 の プロパティ IAsyncResultBeginSend 使用します。

非同期 BeginSend 操作は、 メソッドを呼び出して完了する EndSend 必要があります。 通常、 メソッドはデリゲートによって AsyncCallback 呼び出されます。 EndSend は、操作が完了するまで呼び出し元のスレッドをブロックします。

接続指向プロトコルを対象としていますが、 BeginSend または メソッドを最初に呼び出してConnectBeginConnect既定のリモート ホストを確立する場合は、コネクションレス プロトコルでも機能します。 コネクションレス プロトコルを使用していて、複数の異なるホストにデータを送信する予定の場合は、 を使用 BeginSendToする必要があります。 を使用して既定のリモート ホストConnectを確立した後でも、 を使用BeginSendToしても問題ありません。 または を別の呼び出しで呼び出BeginSendす前に、既定のリモート ホストをConnectBeginConnect変更することもできます。 コネクションレス プロトコルでは、バッファーのサイズが基になるサービス プロバイダーの最大パケット サイズを超えないようにする必要もあります。 送信された場合、データグラムは送信されず、 BeginSendSocketExceptionスローされます。

パラメーターとして フラグを DontRoute 指定した socketflags 場合、送信するデータはルーティングされません。

注意

を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。

注意

特定のスレッドによって開始されたすべての I/O は、そのスレッドが終了すると取り消されます。 保留中の非同期操作は、操作が完了する前にスレッドが終了すると失敗する可能性があります。

注意

state は、ユーザー定義クラスのインスタンス化です。

注意

送信が正常に完了しても、データが正常に配信されたことを示すものではありません。 転送するデータを保持するためにトランスポート・システム内に使用可能なバッファー・スペースがない場合、ソケットが非ブロッキング・モードに入っていない限り、send はブロックします。

Note

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。

注意

実行コンテキスト (セキュリティ コンテキスト、偽装されたユーザー、および呼び出し元のコンテキスト) は、非同期 Socket メソッド用にキャッシュされます。 特定のコンテキスト (特定の非同期 Socket メソッド、特定のインスタンス、および特定 Socket のコールバック) を最初に使用すると、そのコンテキストの後続の使用によってパフォーマンスが向上します。

こちらもご覧ください

適用対象

BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

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

接続されている Socket にデータを非同期的に送信します。

public:
 IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

buffer
Byte[]

送信するデータを格納する Byte 型の配列。

offset
Int32

送信を開始する、buffer パラメーター内の、インデックス番号が 0 から始まる位置。

size
Int32

送信するバイト数。

socketFlags
SocketFlags

SocketFlags 値のビットごとの組み合わせ。

callback
AsyncCallback

AsyncCallback デリゲート。

state
Object

この要求の状態情報を格納するオブジェクト。

戻り値

非同期の送信を参照する IAsyncResult

例外

buffernull です。

.NET Framework および .NET 5 以前のみ: ソケットにアクセスしようとしたときにエラーが発生しました。 以下の解説を参照してください。

offset が 0 未満です。

- または -

offsetbuffer の長さより小さい値です。

- または -

size が 0 未満です。

- または -

size が、 buffer の長さから offset パラメーターの値を引いた値を超えています。

Socket が閉じられました。

注釈

重要

これは互換性 API です。 新しい開発に APM (Begin* および End*) メソッドを使用することはお勧めしません。 代わりに、 ベースの Task同等のものを使用してください。

を実装AsyncCallbackBeginSendするコールバックを渡して、操作の完了に関する通知を受け取ることができます。 基になるネットワーク スタックが同期的に操作を完了すると、 への呼び出し BeginSend中にコールバックがインラインで実行されることに注意してください。 この場合、 CompletedSynchronously 返される IAsyncResult の プロパティは に true 設定され、メソッドが同期的に完了したことを示します。 メソッドに AsyncState 渡される状態オブジェクトを取得するには、 の プロパティ IAsyncResultBeginSend 使用します。

非同期 BeginSend 操作は、 メソッドを呼び出して完了する EndSend 必要があります。 通常、 メソッドはデリゲートによって AsyncCallback 呼び出されます。 EndSend は、操作が完了するまで呼び出し元のスレッドをブロックします。

接続指向プロトコルを対象としていますが、BeginSend最初に または BeginConnect メソッドを呼び出Connectして既定のリモート ホストを確立する場合は、コネクションレス プロトコルでも機能します。 コネクションレス プロトコルを使用していて、複数の異なるホストにデータを送信する予定の場合は、 を使用 BeginSendToする必要があります。 を使用して既定のリモート ホストConnectを確立した後でも、 を使用BeginSendToしても問題ありません。 または を別の呼び出しで呼び出すBeginSend前に、既定のリモート ホストをConnectBeginConnect変更することもできます。 コネクションレス プロトコルでは、バッファーのサイズが基になるサービス プロバイダーの最大パケット サイズを超えないようにする必要もあります。 その場合、データグラムは送信されず、 BeginSendSocketExceptionスローされます。

パラメーターとして フラグをDontRoutesocketflags指定した場合、送信するデータはルーティングされません。

注意

を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。

注意

特定のスレッドによって開始されたすべての I/O は、そのスレッドが終了すると取り消されます。 操作が完了する前にスレッドが終了すると、保留中の非同期操作が失敗する可能性があります。

注意

state は、ユーザー定義クラスのインスタンス化です。

注意

送信が正常に完了しても、データが正常に配信されたことは示されません。 転送するデータを保持するためにトランスポート・システム内に使用可能なバッファー・スペースがない場合、ソケットが非ブロッキング・モードに設定されていない限り、send はブロックします。

Note

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。

注意

実行コンテキスト (セキュリティ コンテキスト、偽装されたユーザー、および呼び出し元のコンテキスト) は、非同期 Socket メソッド用にキャッシュされます。 特定のコンテキスト (特定の非同期 Socket メソッド、特定のインスタンス、および特定 Socket のコールバック) を最初に使用すると、そのコンテキストの後続の使用によってパフォーマンスが向上します。

こちらもご覧ください

適用対象

BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

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

接続されている Socket にデータを非同期的に送信します。

public:
 IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

buffer
Byte[]

送信するデータを格納する Byte 型の配列。

offset
Int32

送信を開始する、buffer パラメーター内の、インデックス番号が 0 から始まる位置。

size
Int32

送信するバイト数。

socketFlags
SocketFlags

SocketFlags 値のビットごとの組み合わせ。

errorCode
SocketError

ソケット エラーを格納する SocketError オブジェクト。

callback
AsyncCallback

AsyncCallback デリゲート。

state
Object

この要求の状態情報を格納するオブジェクト。

戻り値

非同期の送信を参照する IAsyncResult

例外

buffernull です。

.NET Framework および .NET 5 以前のみ: ソケットにアクセスしようとしたときにエラーが発生しました。 以下の解説を参照してください。

offset が 0 未満です。

- または -

offsetbuffer の長さより小さい値です。

- または -

size が 0 未満です。

- または -

size が、 buffer の長さから offset パラメーターの値を引いた値を超えています。

Socket が閉じられました。

注釈

重要

これは互換性 API です。 新しい開発に APM (Begin* および End*) メソッドを使用することはお勧めしません。 代わりに、 ベースの Task同等のものを使用してください。

を実装AsyncCallbackBeginSendするコールバックを渡して、操作の完了に関する通知を受け取ることができます。 基になるネットワーク スタックが同期的に操作を完了すると、 への呼び出し BeginSend中にコールバックがインラインで実行されることに注意してください。 この場合、 CompletedSynchronously 返される IAsyncResult の プロパティは に true 設定され、メソッドが同期的に完了したことを示します。 メソッドに AsyncState 渡される状態オブジェクトを取得するには、 の プロパティ IAsyncResultBeginSend 使用します。

非同期 BeginSend 操作は、 メソッドを呼び出して完了する EndSend 必要があります。 通常、 メソッドはデリゲートによって AsyncCallback 呼び出されます。 EndSend は、操作が完了するまで呼び出し元のスレッドをブロックします。

接続指向プロトコルを対象としていますが、BeginSend最初に または BeginConnect メソッドを呼び出Connectして既定のリモート ホストを確立する場合は、コネクションレス プロトコルでも機能します。 コネクションレス プロトコルを使用していて、複数の異なるホストにデータを送信する予定の場合は、 を使用 BeginSendToする必要があります。 を使用して既定のリモート ホストConnectを確立した後でも、 を使用BeginSendToしても問題ありません。 または を別の呼び出しで呼び出すBeginSend前に、既定のリモート ホストをConnectBeginConnect変更することもできます。 コネクションレス プロトコルでは、バッファーのサイズが基になるサービス プロバイダーの最大パケット サイズを超えないようにする必要もあります。 その場合、データグラムは送信されず、 BeginSendSocketExceptionスローされます。

パラメーターとして フラグをDontRoutesocketflags指定した場合、送信するデータはルーティングされません。

注意

を受け取った場合は SocketException、 プロパティを SocketException.ErrorCode 使用して特定のエラー コードを取得します。

注意

特定のスレッドによって開始されたすべての I/O は、そのスレッドが終了すると取り消されます。 保留中の非同期操作は、操作が完了する前にスレッドが終了すると失敗する可能性があります。

注意

state は、ユーザー定義クラスのインスタンス化です。

注意

送信が正常に完了しても、データが正常に配信されたことを示すものではありません。 転送するデータを保持するためにトランスポート・システム内に使用可能なバッファー・スペースがない場合、ソケットが非ブロッキング・モードに入っていない限り、send はブロックします。

Note

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。 詳細については、「.NET Frameworkのネットワーク トレース」を参照してください。

注意

実行コンテキスト (セキュリティ コンテキスト、偽装されたユーザー、および呼び出し元のコンテキスト) は、非同期 Socket メソッド用にキャッシュされます。 特定のコンテキスト (特定の非同期 Socket メソッド、特定 Socket のインスタンス、および特定のコールバック) を最初に使用した後、そのコンテキストを後続で使用すると、パフォーマンスが向上します。

こちらもご覧ください

適用対象