Socket.BeginReceive メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > Socket.BeginReceive メソッドの意味・解説 

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

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

接続されている Socket からの非同期データ受信開始します

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

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

<CLSCompliantAttribute(False)> _
Public Function BeginReceive ( _
    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.BeginReceive(buffers, socketFlags, callback, state)
[CLSCompliantAttribute(false)] 
public IAsyncResult BeginReceive (
    IList<ArraySegment<byte>> buffers,
    SocketFlags socketFlags,
    AsyncCallback callback,
    Object state
)
[CLSCompliantAttribute(false)] 
public:
IAsyncResult^ BeginReceive (
    IList<ArraySegment<unsigned char>>^ buffers, 
    SocketFlags socketFlags, 
    AsyncCallback^ callback, 
    Object^ state
)
/** @attribute CLSCompliantAttribute(false) */ 
public IAsyncResult BeginReceive (
    IList<ArraySegment<byte>> buffers, 
    SocketFlags socketFlags, 
    AsyncCallback callback, 
    Object state
)
CLSCompliantAttribute(false) 
public function BeginReceive (
    buffers : IList<ArraySegment<byte>>, 
    socketFlags : SocketFlags, 
    callback : AsyncCallback, 
    state : Object
) : IAsyncResult

パラメータ

buffers

受信したデータストレージ場所となる Byte 型の配列

socketFlags

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

callback

操作完了時に呼び出すメソッド参照する AsyncCallback デリゲート

state

受信操作に関する情報格納するユーザー定義のオブジェクト。このオブジェクトは、操作完了時に EndReceive デリゲート渡されます。

戻り値
非同期読み取り参照する IAsyncResult。

例外例外
例外種類条件

ArgumentNullException

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

SocketException

ソケットへのアクセス試みているときにエラー発生しました詳細については「解説」を参照してください

ObjectDisposedException

Socket閉じられています。

解説解説

非同期の BeginReceive 操作は、EndReceive メソッド呼び出して終了させる必要があります通常、このメソッドcallback デリゲートによって呼び出されます。

このメソッドは、操作完了するまでブロックしません。操作完了するまでブロックするには、Receive メソッド オーバーロードいずれか使用します

保留中の BeginReceive をキャンセルするには、Close メソッド呼び出します。

非同期プログラミング モデル使用法詳細については、「同期メソッド非同期呼び出し」を参照してください

メモメモ

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

メモメモ

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

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

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

接続されている Socket からの非同期データ受信開始します

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

Public Function BeginReceive ( _
    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.BeginReceive(buffer, offset, size, socketFlags, callback,
 state)
public IAsyncResult BeginReceive (
    byte[] buffer,
    int offset,
    int size,
    SocketFlags socketFlags,
    AsyncCallback callback,
    Object state
)
public:
IAsyncResult^ BeginReceive (
    array<unsigned char>^ buffer, 
    int offset, 
    int size, 
    SocketFlags socketFlags, 
    AsyncCallback^ callback, 
    Object^ state
)
public IAsyncResult BeginReceive (
    byte[] buffer, 
    int offset, 
    int size, 
    SocketFlags socketFlags, 
    AsyncCallback callback, 
    Object state
)
public function BeginReceive (
    buffer : byte[], 
    offset : int, 
    size : int, 
    socketFlags : SocketFlags, 
    callback : AsyncCallback, 
    state : Object
) : IAsyncResult

パラメータ

buffer

受信したデータストレージ場所となる Byte 型の配列

offset

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

size

受信するバイト数。

socketFlags

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

callback

操作完了時に呼び出すメソッド参照する AsyncCallback デリゲート

state

受信操作に関する情報格納するユーザー定義のオブジェクト。このオブジェクトは、操作完了時に EndReceive デリゲート渡されます。

戻り値
非同期読み取り参照する IAsyncResult。

例外例外
例外種類条件

ArgumentNullException

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

SocketException

ソケットへのアクセス試みているときにエラー発生しました詳細については「解説」を参照してください

ObjectDisposedException

Socket閉じられています。

ArgumentOutOfRangeException

offset が 0 未満です。

または

offsetbuffer長さ超えてます。

または

size が 0 未満です。

または

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

解説解説

非同期BeginReceive 操作は、EndReceive メソッド呼び出して終了させる必要があります通常、このメソッドcallback デリゲートによって呼び出されます。

このメソッドは、操作完了するまでブロックしません。操作完了するまでブロックするには、Receive メソッド オーバーロードいずれか使用します

保留中の BeginReceive をキャンセルするには、Close メソッド呼び出します。

非同期プログラミング モデル使用法詳細については、「同期メソッド非同期呼び出し」を参照してください

メモメモ

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

メモメモ

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

使用例使用例

接続されている Socket から、データ非同期受信開始するコード例次に示します

Public Class StateObject
   Public workSocket As Socket = Nothing
   Public const BUFFER_SIZE As
 Integer = 1024
   Public buffer(BUFFER_SIZE) As byte
   Public sb As New StringBuilder()
End Class 'StateObject
public class StateObject{
     public Socket workSocket = null;
     public const int BUFFER_SIZE
 = 1024;
     public byte[] buffer = new byte[BUFFER_SIZE];
     public StringBuilder sb = new StringBuilder();
}
public ref class StateObject
{
public:
   literal int BUFFER_SIZE = 1024;
   Socket^ workSocket;
   array<Byte>^ buffer;
   StringBuilder^ sb;
   StateObject() : workSocket( nullptr )
   {
      buffer = gcnew array<Byte>(BUFFER_SIZE);
      sb = gcnew StringBuilder;
   }
};
Public Shared Sub Listen_Callback(ar
 As IAsyncResult)
   allDone.Set()
   Dim s As Socket = CType(ar.AsyncState, Socket)
   Dim s2 As Socket = s.EndAccept(ar)
   Dim so2 As New StateObject()
   so2.workSocket = s2
   s2.BeginReceive(so2.buffer, 0, StateObject.BUFFER_SIZE, 0, New
 AsyncCallback(AddressOf Async_Send_Receive.Read_Callback), so2)
End Sub 'Listen_Callback

public static void Listen_Callback(IAsyncResult
 ar){
     allDone.Set();
     Socket s = (Socket) ar.AsyncState;
     Socket s2 = s.EndAccept(ar);
     StateObject so2 = new StateObject();
     so2.workSocket = s2;
     s2.BeginReceive(so2.buffer, 0, StateObject.BUFFER_SIZE,0,
                           new AsyncCallback(Async_Send_Receive.Read_Callback),
 so2);    
}
static void Listen_Callback( IAsyncResult^
 ar )
{
   allDone->Set();
   Socket^ s = safe_cast<Socket^>(ar->AsyncState);
   Socket^ s2 = s->EndAccept( ar );
   StateObject^ so2 = gcnew StateObject;
   so2->workSocket = s2;
   s2->BeginReceive( so2->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None
,
      gcnew AsyncCallback( &Async_Send_Receive::Read_Callback ), so2 );
}
allDone.Set();
Socket s = (Socket)ar.get_AsyncState();
Socket s2 = s.EndAccept(ar);
StateObject so2 = new StateObject();
so2.workSocket = s2;
s2.BeginReceive(so2.buffer, 0, StateObject.BUFFER_SIZE,
    (SocketFlags)0, new AsyncCallback(Async_Send_Receive.Read_Callback)
,
    so2);
Public Shared Sub Read_Callback(ar
 As IAsyncResult)
   Dim so As StateObject = CType(ar.AsyncState,
 StateObject)
   Dim s As Socket = so.workSocket
   
   Dim read As Integer =
 s.EndReceive(ar)
   
   If read > 0 Then
      so.sb.Append(Encoding.ASCII.GetString(so.buffer, 0, read))
      s.BeginReceive(so.buffer, 0, StateObject.BUFFER_SIZE, 0, New
 AsyncCallback(AddressOf Async_Send_Receive.Read_Callback), so)
   Else
      If so.sb.Length > 1 Then
         'All the data has been read, so displays it to the console
         Dim strContent As String
         strContent = so.sb.ToString()
         Console.WriteLine([String].Format("Read {0} byte from
 socket" + "data = {1} ", strContent.Length,
 strContent))
      End If
      s.Close()
   End If
End Sub 'Read_Callback
public static void Read_Callback(IAsyncResult
 ar){
    StateObject so = (StateObject) ar.AsyncState;
    Socket s = so.workSocket;

    int read = s.EndReceive(ar);

    if (read > 0) {
            so.sb.Append(Encoding.ASCII.GetString(so.buffer, 0, read));
            s.BeginReceive(so.buffer, 0, StateObject.BUFFER_SIZE, 0, 
                                     new AsyncCallback(Async_Send_Receive.Read_Callback),
 so);
    }
    else{
         if (so.sb.Length > 1) {
              //All of the data has been read, so displays it to the
 console
              string strContent;
              strContent = so.sb.ToString();
              Console.WriteLine(String.Format("Read {0} byte from socket"
 + 
                                 "data = {1} ", strContent.Length, strContent));
         }
         s.Close();
    }
}
static void Read_Callback( IAsyncResult^ ar
 )
{
   StateObject^ so = safe_cast<StateObject^>(ar->AsyncState);
   Socket^ s = so->workSocket;

   int read = s->EndReceive( ar );

   if ( read > 0 )
   {
      so->sb->Append( Encoding::ASCII->GetString( so->buffer, 0, read
 ) );
      s->BeginReceive( so->buffer, 0, StateObject::BUFFER_SIZE, SocketFlags::None
,
         gcnew AsyncCallback( &Async_Send_Receive::Read_Callback ), so );
   }
   else
   {
      if ( so->sb->Length > 1 )
      {
         //All of the data has been read, so displays it to the console
         String^ strContent = so->sb->ToString();
         Console::WriteLine( String::Format( "Read {0} byte from socket"
 +
            " data = {1} ", strContent->Length, strContent ) );
      }
      s->Close();
   }
}
StateObject so = (StateObject)ar.get_AsyncState();
Socket s = so.workSocket;
int read = s.EndReceive(ar);

if (read > 0) {
    so.sb.Append(Encoding.get_ASCII().GetString(so.buffer, 0, read));
    s.BeginReceive(so.buffer, 0, StateObject.BUFFER_SIZE,
        (SocketFlags)0, new AsyncCallback(Async_Send_Receive.
        Read_Callback), so);
}
else {
    if (so.sb.get_Length() > 1) {
        //All of the data has been read, so displays it to the console
        String strContent;
        strContent = so.sb.ToString();
        Console.WriteLine(String.Format("Read {0} byte from socket"
            + "data = {1} ", (Int32)strContent.get_Length(), 
            strContent));
    }
    s.Close();
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

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

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

接続されている Socket からの非同期データ受信開始します

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

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

<CLSCompliantAttribute(False)> _
Public Function BeginReceive ( _
    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.BeginReceive(buffers, socketFlags, errorCode, callback, state)
[CLSCompliantAttribute(false)] 
public IAsyncResult BeginReceive (
    IList<ArraySegment<byte>> buffers,
    SocketFlags socketFlags,
    out SocketError errorCode,
    AsyncCallback callback,
    Object state
)
[CLSCompliantAttribute(false)] 
public:
IAsyncResult^ BeginReceive (
    IList<ArraySegment<unsigned char>>^ buffers, 
    SocketFlags socketFlags, 
    [OutAttribute] SocketError% errorCode, 
    AsyncCallback^ callback, 
    Object^ state
)
/** @attribute CLSCompliantAttribute(false) */ 
public IAsyncResult BeginReceive (
    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

受信操作に関する情報格納するユーザー定義のオブジェクト。このオブジェクトは、操作完了時に EndReceive デリゲート渡されます。

戻り値
非同期読み取り参照する IAsyncResult。

例外例外
例外種類条件

ArgumentNullException

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

SocketException

ソケットへのアクセス試みているときにエラー発生しました詳細については「解説」を参照してください

ObjectDisposedException

Socket閉じられています。

解説解説

非同期の BeginReceive 操作は、EndReceive メソッド呼び出して終了させる必要があります通常、このメソッドcallback デリゲートによって呼び出されます。

このメソッドは、操作完了するまでブロックしません。操作完了するまでブロックするには、Receive メソッド オーバーロードいずれか使用します

保留中の BeginReceive をキャンセルするには、Close メソッド呼び出します。

非同期プログラミング モデル使用法詳細については、「同期メソッド非同期呼び出し」を参照してください

メモメモ

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

メモメモ

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

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

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

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

接続されている Socket からの非同期データ受信開始します

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

Public Function BeginReceive ( _
    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.BeginReceive(buffer, offset, size, socketFlags, errorCode,
 callback, state)
public IAsyncResult BeginReceive (
    byte[] buffer,
    int offset,
    int size,
    SocketFlags socketFlags,
    out SocketError errorCode,
    AsyncCallback callback,
    Object state
)
public:
IAsyncResult^ BeginReceive (
    array<unsigned char>^ buffer, 
    int offset, 
    int size, 
    SocketFlags socketFlags, 
    [OutAttribute] SocketError% errorCode, 
    AsyncCallback^ callback, 
    Object^ state
)
public IAsyncResult BeginReceive (
    byte[] buffer, 
    int offset, 
    int size, 
    SocketFlags socketFlags, 
    /** @attribute OutAttribute() */ /** @ref */ SocketError errorCode, 
    AsyncCallback callback, 
    Object state
)
JScript では、値型引数参照渡しされません。

パラメータ

buffer

受信したデータストレージ場所となる Byte 型の配列

offset

受信データ格納する buffer内の場所。

size

受信するバイト数。

socketFlags

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

errorCode

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

callback

操作完了時に呼び出すメソッド参照する AsyncCallback デリゲート

state

受信操作に関する情報格納するユーザー定義のオブジェクト。このオブジェクトは、操作完了時に EndReceive デリゲート渡されます。

戻り値
非同期読み取り参照する IAsyncResult。

例外例外
例外種類条件

ArgumentNullException

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

SocketException

ソケットへのアクセス試みているときにエラー発生しました詳細については「解説」を参照してください

ObjectDisposedException

Socket閉じられています。

ArgumentOutOfRangeException

offset が 0 未満です。

または

offsetbuffer長さ超えてます。

または

size が 0 未満です。

または

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

解説解説

非同期の BeginReceive 操作は、EndReceive メソッド呼び出して終了させる必要があります通常、このメソッドcallback デリゲートによって呼び出されます。

このメソッドは、操作完了するまでブロックしません。操作完了するまでブロックするには、Receive メソッド オーバーロードいずれか使用します

保留中の BeginReceive をキャンセルするには、Close メソッド呼び出します。

非同期プログラミング モデル使用法詳細については、「同期メソッド非同期呼び出し」を参照してください

メモメモ

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

メモメモ

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

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

Socket.BeginReceive メソッド

接続されている Socket からの非同期データ受信開始します
オーバーロードの一覧オーバーロードの一覧

名前 説明
Socket.BeginReceive (ジェネリック IList, SocketFlags, AsyncCallback, Object) 接続されている Socket からの非同期データ受信開始します
Socket.BeginReceive (ジェネリック IList, SocketFlags, SocketError, AsyncCallback, Object) 接続されている Socket からの非同期データ受信開始します
Socket.BeginReceive (Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) 接続されている Socket からの非同期データ受信開始します

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

Socket.BeginReceive (Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) 接続されている Socket からの非同期データ受信開始します
参照参照

関連項目

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

その他の技術情報

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



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

辞書ショートカット

すべての辞書の索引

Socket.BeginReceive メソッドのお隣キーワード
検索ランキング

   

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



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

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

©2024 GRAS Group, Inc.RSS