Socket.BeginSendとは? わかりやすく解説

Socket.BeginSend メソッド (ジェネリック IList, SocketFlags, AsyncCallback, Object)

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

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

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

Public Function BeginSend ( _
    buffers As IList(Of ArraySegment(Of
 Byte)), _
    socketFlags As SocketFlags, _
    callback As AsyncCallback, _
    state As Object _
) As IAsyncResult
Dim instance As Socket
Dim buffers As IList(Of
 ArraySegment(Of Byte))
Dim socketFlags As SocketFlags
Dim callback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult

returnValue = instance.BeginSend(buffers, socketFlags, callback, state)
public IAsyncResult BeginSend (
    IList<ArraySegment<byte>> buffers,
    SocketFlags socketFlags,
    AsyncCallback callback,
    Object state
)
public:
IAsyncResult^ BeginSend (
    IList<ArraySegment<unsigned char>>^ buffers, 
    SocketFlags socketFlags, 
    AsyncCallback^ callback, 
    Object^ state
)
public IAsyncResult BeginSend (
    IList<ArraySegment<byte>> buffers, 
    SocketFlags socketFlags, 
    AsyncCallback callback, 
    Object state
)
public function BeginSend (
    buffers : IList<ArraySegment<byte>>, 
    socketFlags : SocketFlags, 
    callback : AsyncCallback, 
    state : Object
) : IAsyncResult

パラメータ

buffers

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

socketFlags

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

callback

AsyncCallback デリゲート

state

この要求ステータス情報格納するオブジェクト

戻り値
非同期送信参照する IAsyncResult。

例外例外
例外種類条件

ArgumentNullException

buffersnull 参照 (Visual Basic では Nothing) です。

ArgumentException

buffers が空です。

SocketException

ソケットへのアクセス試みているときにエラー発生しました。以下の解説参照してください

ObjectDisposedException

Socket閉じられています。

解説解説

BeginSend メソッドは、Connect、BeginConnect、Accept、または BeginAccept の各メソッド確立されリモート ホストへの非同期送信操作開始します最初に AcceptBeginAcceptConnect、または BeginConnect呼び出さないと、BeginSend例外スローます。BeginSend メソッド呼び出すと、個別実行スレッド内でデータ送信できます

AsyncCallback デリゲート実装するコールバック メソッド作成し、その名前を BeginSend メソッドに渡すことができます。これを行うには、少なくとも、通信使用される接続済みまたは既定Socket が、state パラメータ格納されている必要があります。他の情報コールバック必要な場合は、小さなクラスまたは構造体作成して Socket などの必要な情報保持します。この場合、このクラスインスタンスを、state パラメータ使用して BeginSend メソッド渡します

コールバック メソッドは EndSend メソッド呼び出す必要がありますアプリケーションBeginSend呼び出すと、指定したコールバック メソッド個別スレッド使用して実行されEndSend は、Socket要求バイト数を送信する例外スローするまでブロックしますBeginSend メソッド呼び出してから元のスレッドブロックする場合は、WaitHandle.WaitOne メソッド使用します。元のスレッド実行継続させるには、コールバック メソッドの T:System.Threading.ManualResetEvent で Set メソッド呼び出します。コールバック メソッド記述に関する追加情報については、「Callbackサンプル」を参照してください

BeginSend は、コネクション指向プロトコル想定していますが、Connect メソッドまたは BeginConnect メソッド呼び出して既定リモート ホスト確立しておけば、コネクションレスプロトコルでも使用できますコネクションレスプロトコル使用していて、複数異なホストデータ送信する予定がある場合は、BeginSendTo を使用してくださいBeginSendTo は、Connect既定リモート ホスト確立した後で使用できますまた、BeginSend呼び出し前にConnect または BeginConnect呼び出すことによって、既定リモート ホスト変更できますコネクションレスプロトコル使用している場合は、バッファサイズが、基になるサービス プロバイダ最大パケット サイズ超えないことを確認する必要もあります最大サイズ超えている場合データグラム送信されず、BeginSendSocketExceptionスローます。

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

メモメモ

SocketException発生した場合は、SocketException.ErrorCode プロパティ使用して具体的なエラー コード取得してください。このコード取得したら、Windows Socket Version 2 API エラー コードドキュメントエラー詳細情報確認してください。これは MSDN ライブラリから入手できます

メモメモ

送信正常に完了したからといってデータ正しく伝達されたとは限りません。トランスポート システム内に、送信対象データ保持するだけのバッファ領域存在しない場合ソケットが非ブロッキング モード設定されていない限り送信ブロックされます。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Socket.BeginSend メソッド (Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

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

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

Public Function BeginSend ( _
    buffer As Byte(), _
    offset As Integer, _
    size As Integer, _
    socketFlags As SocketFlags, _
    callback As AsyncCallback, _
    state As Object _
) As IAsyncResult
Dim instance As Socket
Dim buffer As Byte()
Dim offset As Integer
Dim size As Integer
Dim socketFlags As SocketFlags
Dim callback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult

returnValue = instance.BeginSend(buffer, offset, size, socketFlags, callback, state)
public IAsyncResult BeginSend (
    byte[] buffer,
    int offset,
    int size,
    SocketFlags socketFlags,
    AsyncCallback callback,
    Object state
)
public:
IAsyncResult^ BeginSend (
    array<unsigned char>^ buffer, 
    int offset, 
    int size, 
    SocketFlags socketFlags, 
    AsyncCallback^ callback, 
    Object^ state
)
public IAsyncResult BeginSend (
    byte[] buffer, 
    int offset, 
    int size, 
    SocketFlags socketFlags, 
    AsyncCallback callback, 
    Object state
)
public function BeginSend (
    buffer : byte[], 
    offset : int, 
    size : int, 
    socketFlags : SocketFlags, 
    callback : AsyncCallback, 
    state : Object
) : IAsyncResult

パラメータ

buffer

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

offset

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

size

送信するバイト数。

socketFlags

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

callback

AsyncCallback デリゲート

state

この要求ステータス情報格納するオブジェクト

戻り値
非同期送信参照する IAsyncResult。

例外例外
例外種類条件

ArgumentNullException

buffernull 参照 (Visual Basic では Nothing) です。

SocketException

ソケットへのアクセス試みているときにエラー発生しました。以下の解説参照してください

ArgumentOutOfRangeException

offset が 0 未満です。

または

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

または

size が 0 未満です。

または

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

ObjectDisposedException

Socket閉じられています。

解説解説

BeginSend メソッドは、Connect、BeginConnect、Accept、または BeginAccept の各メソッド確立されリモート ホストへの非同期送信操作開始します最初に AcceptBeginAcceptConnect、または BeginConnect呼び出さないと、BeginSend例外スローます。BeginSend メソッド呼び出すと、個別実行スレッド内でデータ送信できます

AsyncCallback デリゲート実装するコールバック メソッド作成し、その名前を BeginSend メソッドに渡すことができます。これを行うには、少なくとも、通信使用される接続済みまたは既定Socket が、state パラメータ格納されている必要があります。他の情報コールバック必要な場合は、小さなクラスまたは構造体作成して Socket などの必要な情報保持します。この場合、このクラスインスタンスを、state パラメータ使用して BeginSend メソッド渡します

コールバック メソッドは EndSend メソッド呼び出す必要がありますアプリケーションBeginSend呼び出すと、指定したコールバック メソッド個別スレッド使用して実行されEndSend は、Socket要求バイト数を送信する例外スローするまでブロックしますBeginSend メソッド呼び出してから元のスレッドブロックする場合は、WaitHandle.WaitOne メソッド使用します。元のスレッド実行継続させるには、コールバック メソッドの T:System.Threading.ManualResetEvent で Set メソッド呼び出します。コールバック メソッド記述に関する追加情報については、「Callbackサンプル」を参照してください

BeginSend は、コネクション指向プロトコル想定していますが、Connect メソッドまたは BeginConnect メソッド呼び出して既定リモート ホスト確立しておけば、コネクションレスプロトコルでも使用できますコネクションレスプロトコル使用していて、複数異なホストデータ送信する予定がある場合は、BeginSendTo を使用してくださいBeginSendTo は、Connect既定リモート ホスト確立した後で使用できますまた、BeginSend呼び出し前にConnect または BeginConnect呼び出すことによって、既定リモート ホスト変更できますコネクションレスプロトコル使用している場合は、バッファサイズが、基になるサービス プロバイダ最大パケット サイズ超えないことを確認する必要もあります最大サイズ超えている場合データグラム送信されず、BeginSendSocketExceptionスローます。

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

メモメモ

SocketException発生した場合は、SocketException.ErrorCode プロパティ使用して具体的なエラー コード取得してください。このコード取得したら、Windows Socket Version 2 API エラー コードドキュメントエラー詳細情報確認してください。これは MSDN ライブラリから入手できます

メモメモ

送信正常に完了したからといってデータ正しく伝達されたとは限りません。トランスポート システム内に、送信対象データ保持するだけのバッファ領域存在しない場合ソケットが非ブロッキング モード設定されていない限り送信ブロックされます。

使用例使用例

リモート ホストへの非同期的なデータ送信開始するコード例次に示します

Public Shared Sub Connect_Callback(ar
 As IAsyncResult)
   

   allDone.Set()
   Dim s As Socket = CType(ar.AsyncState, Socket)
   s.EndConnect(ar)
   Dim so2 As New StateObject()
   so2.workSocket = s
   Dim buff As Byte() =
 Encoding.ASCII.GetBytes("This is a test")
   s.BeginSend(buff, 0, buff.Length, 0, New AsyncCallback(AddressOf
 Async_Send_Receive.Send_Callback), so2)
End Sub 'Connect_Callback

allDone.Set();
Socket s = (Socket) ar.AsyncState;
s.EndConnect(ar);
StateObject so2 = new StateObject();
so2.workSocket = s;
byte[] buff = Encoding.ASCII.GetBytes("This is a test");
s.BeginSend(buff, 0, buff.Length,0,
                      new AsyncCallback(Async_Send_Receive.Send_Callback),
 so2);    
allDone->Set();
Socket^ s = safe_cast<Socket^>(ar->AsyncState);
s->EndConnect( ar );
StateObject^ so2 = gcnew StateObject;
so2->workSocket = s;
array<Byte>^ buff = Encoding::ASCII->GetBytes( "This is a test"
 );
s->BeginSend( buff, 0, buff->Length, SocketFlags::None,
   gcnew AsyncCallback( &Async_Send_Receive::Send_Callback ), so2 );
allDone.Set();
Socket s = (Socket)ar.get_AsyncState();
s.EndConnect(ar);
StateObject so2 = new StateObject();
so2.workSocket = s;
ubyte buff[] = Encoding.get_ASCII().GetBytes("This is a test");
s.BeginSend(buff, 0, buff.length, (SocketFlags)0,
    new AsyncCallback(Async_Send_Receive.Send_Callback), so2);
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Socket.BeginSend メソッド (ジェネリック IList, SocketFlags, SocketError, AsyncCallback, Object)

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

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

このメソッドは、CLS準拠していません。  

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

<CLSCompliantAttribute(False)> _
Public Function BeginSend ( _
    buffers As IList(Of ArraySegment(Of
 Byte)), _
    socketFlags As SocketFlags, _
    <OutAttribute> ByRef errorCode As
 SocketError, _
    callback As AsyncCallback, _
    state As Object _
) As IAsyncResult
Dim instance As Socket
Dim buffers As IList(Of
 ArraySegment(Of Byte))
Dim socketFlags As SocketFlags
Dim errorCode As SocketError
Dim callback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult

returnValue = instance.BeginSend(buffers, socketFlags, errorCode, callback, state)
[CLSCompliantAttribute(false)] 
public IAsyncResult BeginSend (
    IList<ArraySegment<byte>> buffers,
    SocketFlags socketFlags,
    out SocketError errorCode,
    AsyncCallback callback,
    Object state
)
[CLSCompliantAttribute(false)] 
public:
IAsyncResult^ BeginSend (
    IList<ArraySegment<unsigned char>>^ buffers, 
    SocketFlags socketFlags, 
    [OutAttribute] SocketError% errorCode, 
    AsyncCallback^ callback, 
    Object^ state
)
/** @attribute CLSCompliantAttribute(false) */ 
public IAsyncResult BeginSend (
    IList<ArraySegment<byte>> buffers, 
    SocketFlags socketFlags, 
    /** @attribute OutAttribute() */ /** @ref */ SocketError errorCode, 
    AsyncCallback callback, 
    Object state
)
JScript では、値型引数参照渡しされません。

パラメータ

buffers

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

socketFlags

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

errorCode

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

callback

AsyncCallback デリゲート

state

この要求ステータス情報格納するオブジェクト

戻り値
非同期送信参照する IAsyncResult。

例外例外
例外種類条件

ArgumentNullException

buffersnull 参照 (Visual Basic では Nothing) です。

ArgumentException

buffers が空です。

SocketException

ソケットへのアクセス試みているときにエラー発生しました。以下の解説参照してください

ObjectDisposedException

Socket閉じられています。

解説解説

BeginSend メソッドは、Connect、BeginConnect、Accept、または BeginAccept の各メソッド確立されリモート ホストへの非同期送信操作開始します最初に AcceptBeginAcceptConnect、または BeginConnect呼び出さないと、BeginSend例外スローます。BeginSend メソッド呼び出すと、個別実行スレッド内でデータ送信できます

AsyncCallback デリゲート実装するコールバック メソッド作成し、その名前を BeginSend メソッドに渡すことができます。これを行うには、少なくとも、通信使用される接続済みまたは既定Socket が、state パラメータ格納されている必要があります。他の情報コールバック必要な場合は、小さなクラスまたは構造体作成して Socket などの必要な情報保持します。この場合、このクラスインスタンスを、state パラメータ使用して BeginSend メソッド渡します

コールバック メソッドは EndSend メソッド呼び出す必要がありますアプリケーションBeginSend呼び出すと、指定したコールバック メソッド個別スレッド使用して実行されEndSend は、Socket要求バイト数を送信する例外スローするまでブロックしますBeginSend メソッド呼び出してから元のスレッドブロックする場合は、WaitHandle.WaitOne メソッド使用します。元のスレッド実行継続させるには、コールバック メソッドの T:System.Threading.ManualResetEvent で Set メソッド呼び出します。コールバック メソッド記述に関する追加情報については、「Callbackサンプル」を参照してください

BeginSend は、コネクション指向プロトコル想定していますが、Connect メソッドまたは BeginConnect メソッド呼び出して既定リモート ホスト確立しておけば、コネクションレスプロトコルでも使用できますコネクションレスプロトコル使用していて、複数異なホストデータ送信する予定がある場合は、BeginSendTo を使用してくださいBeginSendTo は、Connect既定リモート ホスト確立した後で使用できますまた、BeginSend呼び出し前にConnect または BeginConnect呼び出すことによって、既定リモート ホスト変更できますコネクションレスプロトコル使用している場合は、バッファサイズが、基になるサービス プロバイダ最大パケット サイズ超えないことを確認する必要もあります最大サイズ超えている場合データグラム送信されず、BeginSendSocketExceptionスローます。

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

メモメモ

SocketException発生した場合は、SocketException.ErrorCode プロパティ使用して具体的なエラー コード取得してください。このコード取得したら、Windows Socket Version 2 API エラー コードドキュメントエラー詳細情報確認してください。これは MSDN ライブラリから入手できます

メモメモ

送信正常に完了したからといってデータ正しく伝達されたとは限りません。トランスポート システム内に、送信対象データ保持するだけのバッファ領域存在しない場合ソケットが非ブロッキング モード設定されていない限り送信ブロックされます。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Socket.BeginSend メソッド (Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

メモ : このメソッドは、.NET Framework version 2.0新しく追加されたものです。

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

名前空間: System.Net.Sockets
アセンブリ: System (system.dll 内)
構文構文

Public Function BeginSend ( _
    buffer As Byte(), _
    offset As Integer, _
    size As Integer, _
    socketFlags As SocketFlags, _
    <OutAttribute> ByRef errorCode As
 SocketError, _
    callback As AsyncCallback, _
    state As Object _
) As IAsyncResult
Dim instance As Socket
Dim buffer As Byte()
Dim offset As Integer
Dim size As Integer
Dim socketFlags As SocketFlags
Dim errorCode As SocketError
Dim callback As AsyncCallback
Dim state As Object
Dim returnValue As IAsyncResult

returnValue = instance.BeginSend(buffer, offset, size, socketFlags, errorCode, callback,
 state)
public IAsyncResult BeginSend (
    byte[] buffer,
    int offset,
    int size,
    SocketFlags socketFlags,
    out SocketError errorCode,
    AsyncCallback callback,
    Object state
)
public:
IAsyncResult^ BeginSend (
    array<unsigned char>^ buffer, 
    int offset, 
    int size, 
    SocketFlags socketFlags, 
    [OutAttribute] SocketError% errorCode, 
    AsyncCallback^ callback, 
    Object^ state
)
public IAsyncResult BeginSend (
    byte[] buffer, 
    int offset, 
    int size, 
    SocketFlags socketFlags, 
    /** @attribute OutAttribute() */ /** @ref */ SocketError errorCode, 
    AsyncCallback callback, 
    Object state
)
JScript では、値型引数参照渡しされません。

パラメータ

buffer

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

offset

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

size

送信するバイト数。

socketFlags

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

errorCode

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

callback

AsyncCallback デリゲート

state

この要求ステータス情報格納するオブジェクト

戻り値
非同期送信参照する IAsyncResult。

例外例外
例外種類条件

ArgumentNullException

buffernull 参照 (Visual Basic では Nothing) です。

SocketException

ソケットへのアクセス試みているときにエラー発生しました。以下の解説参照してください

ArgumentOutOfRangeException

offset が 0 未満です。

または

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

または

size が 0 未満です。

または

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

ObjectDisposedException

Socket閉じられています。

解説解説

BeginSend メソッドは、Connect、BeginConnect、Accept、または BeginAccept の各メソッド確立されリモート ホストへの非同期送信操作開始します最初に AcceptBeginAcceptConnect、または BeginConnect呼び出さないと、BeginSend例外スローます。BeginSend メソッド呼び出すと、個別実行スレッド内でデータ送信できます

AsyncCallback デリゲート実装するコールバック メソッド作成し、その名前を BeginSend メソッドに渡すことができます。これを行うには、少なくとも、通信使用される接続済みまたは既定Socket が、state パラメータ格納されている必要があります。他の情報コールバック必要な場合は、小さなクラスまたは構造体作成して Socket などの必要な情報保持します。この場合、このクラスインスタンスを、state パラメータ使用して BeginSend メソッド渡します

コールバック メソッドは EndSend メソッド呼び出す必要がありますアプリケーションBeginSend呼び出すと、指定したコールバック メソッド個別スレッド使用して実行されEndSend は、Socket要求バイト数を送信する例外スローするまでブロックしますBeginSend メソッド呼び出してから元のスレッドブロックする場合は、WaitHandle.WaitOne メソッド使用します。元のスレッド実行継続させるには、コールバック メソッドの T:System.Threading.ManualResetEvent で Set メソッド呼び出します。コールバック メソッド記述に関する追加情報については、「Callbackサンプル」を参照してください

BeginSend は、コネクション指向プロトコル想定していますが、Connect メソッドまたは BeginConnect メソッド呼び出して既定リモート ホスト確立しておけば、コネクションレスプロトコルでも使用できますコネクションレスプロトコル使用していて、複数異なホストデータ送信する予定がある場合は、BeginSendTo を使用してくださいBeginSendTo は、Connect既定リモート ホスト確立した後で使用できますまた、BeginSend呼び出し前にConnect または BeginConnect呼び出すことによって、既定リモート ホスト変更できますコネクションレスプロトコル使用している場合は、バッファサイズが、基になるサービス プロバイダ最大パケット サイズ超えないことを確認する必要もあります最大サイズ超えている場合データグラム送信されず、BeginSendSocketExceptionスローます。

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

メモメモ

SocketException発生した場合は、SocketException.ErrorCode プロパティ使用して具体的なエラー コード取得してください。このコード取得したら、Windows Socket Version 2 API エラー コードドキュメントエラー詳細情報確認してください。これは MSDN ライブラリから入手できます

メモメモ

送信正常に完了したからといってデータ正しく伝達されたとは限りません。トランスポート システム内に、送信対象データ保持するだけのバッファ領域存在しない場合ソケットが非ブロッキング モード設定されていない限り送信ブロックされます。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Socket.BeginSend メソッド

接続されている Socketデータ非同期的に送信します
オーバーロードの一覧オーバーロードの一覧

名前 説明
Socket.BeginSend (ジェネリック IList, SocketFlags, AsyncCallback, Object) 接続されている Socketデータ非同期的に送信します
Socket.BeginSend (ジェネリック IList, SocketFlags, SocketError, AsyncCallback, Object) 接続されている Socketデータ非同期的に送信します
Socket.BeginSend (Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) 接続されている Socketデータ非同期的に送信します

.NET Compact Framework によってサポートされています。

Socket.BeginSend (Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) 接続されている Socketデータ非同期的に送信します
参照参照

関連項目

Socket クラス
Socket メンバ
System.Net.Sockets 名前空間
Connect
AsyncCallback
EndSend

その他の技術情報

Callbackサンプル
非同期クライアント ソケットの例
非同期サーバー ソケットの例


このページでは「.NET Framework クラス ライブラリ リファレンス」からSocket.BeginSendを検索した結果を表示しています。
Weblioに収録されているすべての辞書からSocket.BeginSendを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からSocket.BeginSend を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Socket.BeginSend」の関連用語

Socket.BeginSendのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Socket.BeginSendのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS