Socket.Receive メソッド

定義

バインドされた Socket からデータを受信します。Receives data from a bound Socket.

オーバーロード

Receive(Byte[], Int32, Int32, SocketFlags, SocketError)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーに格納します。Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(Byte[], Int32, Int32, SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket から指定したバイト数のデータを受信して、受信バッファー内の指定したオフセット位置に格納します。Receives the specified number of bytes from a bound Socket into the specified offset position of the receive buffer, using the specified SocketFlags.

Receive(Span<Byte>, SocketFlags, SocketError)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーに格納します。Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーのリストに格納します。Receives data from a bound Socket into the list of receive buffers, using the specified SocketFlags.

Receive(Byte[], Int32, SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket から指定したバイト数のデータを受信して受信バッファーに格納します。Receives the specified number of bytes of data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(IList<ArraySegment<Byte>>, SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーのリストに格納します。Receives data from a bound Socket into the list of receive buffers, using the specified SocketFlags.

Receive(Byte[], SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーに格納します。Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(Span<Byte>)

バインドされた Socket からデータを受信し、受信バッファーに格納します。Receives data from a bound Socket into a receive buffer.

Receive(IList<ArraySegment<Byte>>)

バインドされた Socket からデータを受信して、受信バッファーのリストに格納します。Receives data from a bound Socket into the list of receive buffers.

Receive(Byte[])

バインドされた Socket からデータを受信し、受信バッファーに格納します。Receives data from a bound Socket into a receive buffer.

Receive(Span<Byte>, SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーに格納します。Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(Byte[], Int32, Int32, SocketFlags, SocketError)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーに格納します。Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

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

パラメーター

buffer
Byte[]

受信したデータの保存場所となる Byte 型の配列。An array of type Byte that is the storage location for the received data.

offset
Int32

受信したデータを格納する、buffer パラメーター内の位置。The position in the buffer parameter to store the received data.

size
Int32

受信するバイト数。The number of bytes to receive.

socketFlags
SocketFlags

SocketFlags 値のビットごとの組み合わせ。A bitwise combination of the SocketFlags values.

errorCode
SocketError

ソケット エラーを格納する SocketError オブジェクト。A SocketError object that stores the socket error.

戻り値

Int32

受信されたバイト数。The number of bytes received.

例外

buffernullです。buffer is null.

offset が 0 未満です。offset is less than 0.

または-or- offsetbuffer の長さを超えています。offset is greater than the length of buffer.

または-or- size が 0 未満です。size is less than 0.

- または --or- size が、buffer の長さから offset パラメーターの値を引いた値を超えています。size is greater than the length of buffer minus the value of the offset parameter.

socketFlags は、値の有効な組み合わせではありません。socketFlags is not a valid combination of values.

- または --or- LocalEndPoint プロパティが設定されていません。The LocalEndPoint property is not set.

- または --or- Socket にアクセス中にオペレーティング システム エラーが発生しました。An operating system error occurs while accessing the Socket.

Socket が閉じられました。The Socket has been closed.

コール スタック内の呼び出し元が、必要なアクセス許可を保持していません。A caller in the call stack does not have the required permissions.

注釈

メソッドは、 Receive バッファーパラメーターにデータを読み込み、正常に読み取られたバイト数を返します。The Receive method reads data into the buffer parameter and returns the number of bytes successfully read. Receive接続指向ソケットとコネクションレスソケットの両方からを呼び出すことができます。You can call Receive from both connection-oriented and connectionless sockets.

接続指向プロトコルを使用している場合は、を呼び出して Connect リモートホスト接続を確立するか、を Accept 呼び出す前に受信接続を受け入れる必要があり Receive ます。If you are using a connection-oriented protocol, you must either call Connect to establish a remote host connection, or Accept to accept an incoming connection prior to calling Receive. メソッドは、メソッド Receive またはメソッドで確立されたリモートホストから到着したデータのみを読み取り Connect Accept ます。The Receive method will only read data that arrives from the remote host established in the Connect or Accept method. コネクションレスプロトコルを使用している場合は、メソッドを使用することもでき ReceiveFrom ます。If you are using a connectionless protocol, you can also use the ReceiveFrom method. ReceiveFrom では、任意のホストから到着したデータを受信できます。ReceiveFrom will allow you to receive data arriving from any host.

読み取り可能なデータがない場合は、 Receive を使用してタイムアウト値が設定されていない限り、データが使用可能になるまで、メソッドはブロックされ Socket.ReceiveTimeout ます。If no data is available for reading, the Receive method will block until data is available, unless a time-out value was set by using Socket.ReceiveTimeout. タイムアウト値を超えた場合、 Receive を呼び出すと、がスローされ SocketException ます。If the time-out value was exceeded, the Receive call will throw a SocketException. 非ブロッキングモードで、プロトコルスタックバッファーのに使用できるデータがない場合、 Receive メソッドは直ちに完了し、をスローし SocketException ます。If you are in non-blocking mode, and there is no data available in the in the protocol stack buffer, the Receive method will complete immediately and throw a SocketException. ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket. 下記の注釈を参照してください。See Remarks below. プロパティを使用して、 Available データを読み取り可能にするかどうかを判断できます。You can use the Available property to determine if data is available for reading. Availableが0以外の場合は、受信操作を再試行します。When Available is non-zero, retry the receive operation.

接続指向のを使用している場合、メソッドは、 Socket Receive size パラメーターで指定されたバイト数まで、使用可能な量のデータを読み取ります。If you are using a connection-oriented Socket, the Receive method will read as much data as is available, up to the number of bytes specified by the size parameter. リモートホストが Socket メソッドとの接続を切断 Shutdown し、使用可能なすべてのデータを受信した場合、 Receive メソッドは直ちに完了し、0バイトを返します。If the remote host shuts down the Socket connection with the Shutdown method, and all available data has been received, the Receive method will complete immediately and return zero bytes.

コネクションレスを使用している場合 SocketReceive は、メソッドで指定した送信先アドレスからキューに置かれた最初のデータグラムを読み取り Connect ます。If you are using a connectionless Socket, Receive will read the first queued datagram from the destination address you specify in the Connect method. 受信したデータグラムがパラメーターのサイズよりも大きい場合は bufferbuffer メッセージの最初の部分を入力し、余分なデータが失われて SocketException がスローされます。If the datagram you receive is larger than the size of the buffer parameter, buffer gets filled with the first part of the message, the excess data is lost and a SocketException is thrown.

注意

を受け取った場合は、プロパティを使用して、 SocketException SocketException.ErrorCode 特定のエラーコードを取得します。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得したら、 Windows Sockets version 2 API エラーコード のドキュメントを参照して、エラーの詳細な説明を参照してください。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

こちらもご覧ください

適用対象

Receive(Byte[], Int32, Int32, SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket から指定したバイト数のデータを受信して、受信バッファー内の指定したオフセット位置に格納します。Receives the specified number of bytes from a bound Socket into the specified offset position of the receive buffer, using the specified SocketFlags.

public:
 int Receive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Receive (byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * int * int * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags) As Integer

パラメーター

buffer
Byte[]

受信したデータの格納場所である、Byte 型の配列。An array of type Byte that is the storage location for received data.

offset
Int32

受信データを格納する buffer内の場所。The location in buffer to store the received data.

size
Int32

受信するバイト数。The number of bytes to receive.

socketFlags
SocketFlags

SocketFlags 値のビットごとの組み合わせ。A bitwise combination of the SocketFlags values.

戻り値

Int32

受信されたバイト数。The number of bytes received.

例外

buffernullです。buffer is null.

offset が 0 未満です。offset is less than 0.

または-or- offsetbuffer の長さを超えています。offset is greater than the length of buffer.

または-or- size が 0 未満です。size is less than 0.

- または --or- size が、buffer の長さから offset パラメーターの値を引いた値を超えています。size is greater than the length of buffer minus the value of the offset parameter.

socketFlags は、値の有効な組み合わせではありません。socketFlags is not a valid combination of values.

- または --or- LocalEndPoint プロパティが設定されていませんでした。The LocalEndPoint property was not set.

- または --or- Socket にアクセス中にオペレーティング システム エラーが発生しました。An operating system error occurs while accessing the Socket.

Socket が閉じられました。The Socket has been closed.

コール スタック内の呼び出し元が、必要なアクセス許可を保持していません。A caller in the call stack does not have the required permissions.

次のコード例では、接続されているでデータを受信する前に、データバッファー、オフセット、サイズ、およびソケットフラグを指定して Socket います。The following code example specifies a data buffer, an offset, a size, and a socket flag before receiving data on a connected Socket.

// Displays sending with a connected socket
// using the overload that takes a buffer, offset, message size, and socket flags.
int SendReceiveTest4( Socket^ server )
{
   array<Byte>^ msg = Encoding::UTF8->GetBytes( "This is a test" );
   array<Byte>^ bytes = gcnew array<Byte>(256);
   try
   {
      
      // Blocks until send returns.
      int byteCount = server->Send( msg, 0, msg->Length, SocketFlags::None );
      Console::WriteLine( "Sent {0} bytes.", byteCount.ToString() );
      
      // Get reply from the server.
      byteCount = server->Receive( bytes, 0, server->Available,
         SocketFlags::None );
      if ( byteCount > 0 )
      {
         Console::WriteLine( Encoding::UTF8->GetString( bytes ) );
      }
   }
   catch ( SocketException^ e ) 
   {
      Console::WriteLine(  "{0} Error code: {1}.", e->Message, e->ErrorCode.ToString() );
      return (e->ErrorCode);
   }
   return 0;
}
// Displays sending with a connected socket
// using the overload that takes a buffer, offset, message size, and socket flags.
public static int SendReceiveTest4(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int byteCount = server.Send(msg, 0, msg.Length, SocketFlags.None);
        Console.WriteLine("Sent {0} bytes.", byteCount);

        // Get reply from the server.
        byteCount = server.Receive(bytes, 0, server.Available,
                                   SocketFlags.None);

        if (byteCount > 0)
            Console.WriteLine(Encoding.UTF8.GetString(bytes));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer, offset, message size, and socket flags.
Public Shared Function SendReceiveTest4(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim byteCount As Integer = server.Send(msg, 0, msg.Length, SocketFlags.None)
        Console.WriteLine("Sent {0} bytes.", byteCount)
        
        ' Get reply from the server.
        byteCount = server.Receive(bytes, 0, server.Available, SocketFlags.None)
        
        If byteCount > 0 Then
            Console.WriteLine(Encoding.UTF8.GetString(bytes))
        End If
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest4

注釈

メソッドは、 Receive バッファーパラメーターにデータを読み込み、正常に読み取られたバイト数を返します。The Receive method reads data into the buffer parameter and returns the number of bytes successfully read. Receive接続指向ソケットとコネクションレスソケットの両方からを呼び出すことができます。You can call Receive from both connection-oriented and connectionless sockets.

接続指向プロトコルを使用している場合は、を呼び出して Connect リモートホスト接続を確立するか、を Accept 呼び出す前に受信接続を受け入れる必要があり Receive ます。If you are using a connection-oriented protocol, you must either call Connect to establish a remote host connection, or Accept to accept an incoming connection prior to calling Receive. メソッドは、メソッド Receive またはメソッドで確立されたリモートホストから到着したデータのみを読み取り Connect Accept ます。The Receive method will only read data that arrives from the remote host established in the Connect or Accept method. コネクションレスプロトコルを使用している場合は、メソッドを使用することもでき ReceiveFrom ます。If you are using a connectionless protocol, you can also use the ReceiveFrom method. ReceiveFrom では、任意のホストから到着したデータを受信できます。ReceiveFrom will allow you to receive data arriving from any host.

読み取り可能なデータがない場合は、 Receive を使用してタイムアウト値が設定されていない限り、データが使用可能になるまで、メソッドはブロックされ Socket.ReceiveTimeout ます。If no data is available for reading, the Receive method will block until data is available, unless a time-out value was set by using Socket.ReceiveTimeout. タイムアウト値を超えた場合、 Receive を呼び出すと、がスローされ SocketException ます。If the time-out value was exceeded, the Receive call will throw a SocketException. 非ブロッキングモードで、プロトコルスタックバッファーのに使用できるデータがない場合、 Receive メソッドは直ちに完了し、をスローし SocketException ます。If you are in non-blocking mode, and there is no data available in the in the protocol stack buffer, the Receive method will complete immediately and throw a SocketException. ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket. 下記の注釈を参照してください。See Remarks below. プロパティを使用して、 Available データを読み取り可能にするかどうかを判断できます。You can use the Available property to determine if data is available for reading. Availableが0以外の場合は、受信操作を再試行します。When Available is non-zero, retry the receive operation.

接続指向のを使用している場合、メソッドは、 Socket Receive size パラメーターで指定されたバイト数まで、使用可能な量のデータを読み取ります。If you are using a connection-oriented Socket, the Receive method will read as much data as is available, up to the number of bytes specified by the size parameter. リモートホストが Socket メソッドとの接続を切断 Shutdown し、使用可能なすべてのデータを受信した場合、 Receive メソッドは直ちに完了し、0バイトを返します。If the remote host shuts down the Socket connection with the Shutdown method, and all available data has been received, the Receive method will complete immediately and return zero bytes.

コネクションレスを使用している場合 SocketReceive は、メソッドで指定した送信先アドレスからキューに置かれた最初のデータグラムを読み取り Connect ます。If you are using a connectionless Socket, Receive will read the first queued datagram from the destination address you specify in the Connect method. 受信したデータグラムがパラメーターのサイズよりも大きい場合は bufferbuffer メッセージの最初の部分を入力し、余分なデータが失われて SocketException がスローされます。If the datagram you receive is larger than the size of the buffer parameter, buffer gets filled with the first part of the message, the excess data is lost and a SocketException is thrown.

注意

を受け取った場合は、プロパティを使用して、 SocketException SocketException.ErrorCode 特定のエラーコードを取得します。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得したら、 Windows Sockets version 2 API エラーコード のドキュメントを参照して、エラーの詳細な説明を参照してください。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

こちらもご覧ください

適用対象

Receive(Span<Byte>, SocketFlags, SocketError)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーに格納します。Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

public:
 int Receive(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive (Span<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : Span<byte> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffer As Span(Of Byte), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer

パラメーター

buffer
Span<Byte>

受信したデータの保存場所となるバイトのスパン。A span of bytes that is the storage location for the received data.

socketFlags
SocketFlags

送受信の動作を指定する列挙値のビットごとの組み合わせ。A bitwise combination of the enumeration values that specifies send and receive behaviors.

errorCode
SocketError

このメソッドから制御が戻るときに、ソケットのエラー コードを定義する列挙値の 1 つを格納します。When this method returns, contains one of the enumeration values that defines error codes for the socket.

戻り値

Int32

受信されたバイト数。The number of bytes received.

例外

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

Socket が閉じられました。The Socket has been closed.

コール スタック内の呼び出し元が、必要なアクセス許可を保持していません。A caller in the call stack does not have the required permissions.

注釈

メソッドは、 Receive バッファーパラメーターにデータを読み込み、正常に読み取られたバイト数を返します。The Receive method reads data into the buffer parameter and returns the number of bytes successfully read. Receive接続指向ソケットとコネクションレスソケットの両方からを呼び出すことができます。You can call Receive from both connection-oriented and connectionless sockets.

このオーバーロードでは、受信バッファーのみを指定する必要があります。This overload only requires you to provide a receive buffer. バッファーオフセットの既定値は0で、サイズは既定でバッファーパラメーターの長さに設定され、既定値はに設定され SocketFlags None ます。The buffer offset defaults to 0, the size defaults to the length of the buffer parameter, and the SocketFlags value defaults to None.

接続指向プロトコルを使用している場合は、を呼び出して Connect リモートホスト接続を確立するか、を Accept 呼び出す前に受信接続を受け入れる必要があり Receive ます。If you're using a connection-oriented protocol, you must either call Connect to establish a remote host connection, or Accept to accept an incoming connection prior to calling Receive. メソッドは、メソッド Receive またはメソッドで確立されたリモートホストから到着したデータのみを読み取り Connect Accept ます。The Receive method will only read data that arrives from the remote host established in the Connect or Accept method. コネクションレスプロトコルを使用している場合は、メソッドを使用することもでき ReceiveFrom ます。If you're using a connectionless protocol, you can also use the ReceiveFrom method. ReceiveFrom では、任意のホストから到着したデータを受信できます。ReceiveFrom will allow you to receive data arriving from any host.

読み取り可能なデータがない場合は、 Receive を使用してタイムアウト値が設定されていない限り、データが使用可能になるまで、メソッドはブロックされ Socket.ReceiveTimeout ます。If no data is available for reading, the Receive method will block until data is available, unless a time-out value was set by using Socket.ReceiveTimeout. タイムアウト値を超えた場合、 Receive を呼び出すと、がスローされ SocketException ます。When the time-out value is exceeded, the Receive call will throw a SocketException. 非ブロッキングモードで、プロトコルスタックバッファーに使用できるデータがない場合、 Receive メソッドは直ちに完了し、をスローし SocketException ます。If you're in non-blocking mode, and there's no data available in the protocol stack buffer, the Receive method will complete immediately and throw a SocketException. プロパティを使用して、 Available データを読み取り可能にするかどうかを判断できます。You can use the Available property to determine if data is available for reading. Availableが0以外の場合は、受信操作を再試行します。When Available is non-zero, retry the receive operation.

接続指向のを使用している場合、 Socket メソッドは、 Receive バッファーのサイズまで、使用可能な限り多くのデータを読み取ります。If you're using a connection-oriented Socket, the Receive method will read as much data as is available, up to the size of the buffer. リモートホストが Socket メソッドとの接続を切断 Shutdown し、使用可能なすべてのデータを受信した場合、 Receive メソッドは直ちに完了し、0バイトを返します。If the remote host shuts down the Socket connection with the Shutdown method, and all available data has been received, the Receive method will complete immediately and return zero bytes.

コネクションレス型を使用している場合 SocketReceive は、メソッドで指定した送信先アドレスからキューに置かれた最初のデータグラムを読み取り Connect ます。If you're using a connectionless Socket, Receive will read the first queued datagram from the destination address you specify in the Connect method. 受信したデータグラムがパラメーターのサイズよりも大きい場合は bufferbuffer メッセージの最初の部分を入力し、余分なデータが失われて SocketException がスローされます。If the datagram you receive is larger than the size of the buffer parameter, buffer gets filled with the first part of the message, the excess data is lost and a SocketException is thrown.

注意

を受け取った場合は、プロパティを使用して、 SocketException SocketException.ErrorCode 特定のエラーコードを取得します。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得したら、 Windows Sockets version 2 API エラーコード のドキュメントを参照して、エラーの詳細な説明を参照してください。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

こちらもご覧ください

適用対象

Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

重要

この API は CLS 準拠ではありません。

CLS 準拠の代替
System.Net.Sockets.Socket.Receive(Byte[], SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーのリストに格納します。Receives data from a bound Socket into the list of receive buffers, using the specified SocketFlags.

public:
 int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
[System.CLSCompliant(false)]
public int Receive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError -> int
[<System.CLSCompliant(false)>]
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer

パラメーター

buffers
IList<ArraySegment<Byte>>

受信したデータを格納する Byte 型の複数の ArraySegment<T> のリスト。A list of ArraySegment<T>s of type Byte that contains the received data.

socketFlags
SocketFlags

SocketFlags 値のビットごとの組み合わせ。A bitwise combination of the SocketFlags values.

errorCode
SocketError

ソケット エラーを格納する SocketError オブジェクト。A SocketError object that stores the socket error.

戻り値

Int32

受信されたバイト数。The number of bytes received.

属性

例外

buffersnullです。buffers is null.

- または --or- buffers.Count が 0 です。buffers.Count is zero.

ソケットへのアクセスを試みているときにエラーが発生しました。An error occurred while attempting to access the socket.

Socket が閉じられました。The Socket has been closed.

注釈

このメソッドは、パラメーターにデータを読み込み、 buffers 正常に読み取られたバイト数を返します。This method reads data into the buffers parameter and returns the number of bytes successfully read. 接続指向ソケットとコネクションレスソケットの両方からを呼び出すことができます。You can call from both connection-oriented and connectionless sockets.

このオーバーロードでは、1つ以上の受信バッファーを指定する必要があります。This overload requires you to provide one or more receive buffers. SocketFlags既定値は None です。The SocketFlags value defaults to None.

接続指向プロトコルを使用している場合は、を呼び出して Connect リモートホスト接続を確立するか、を Accept 呼び出す前に受信接続を受け入れる必要があり Receive ます。If you are using a connection-oriented protocol, you must either call Connect to establish a remote host connection, or Accept to accept an incoming connection prior to calling Receive. メソッドは、メソッド Receive またはメソッドで確立されたリモートホスト接続から受信したデータのみを読み取り Connect Accept ます。The Receive method will only read data that arrives from the remote host connection established in the Connect or Accept method. コネクションレスプロトコルを使用している場合は、メソッドを使用することもでき ReceiveFrom ます。If you are using a connectionless protocol, you can also use the ReceiveFrom method. ReceiveFrom では、任意のホストから到着したデータを受信できます。ReceiveFrom will allow you to receive data arriving from any host.

読み取り可能なデータがない場合は、 Receive を使用してタイムアウト値が設定されていない限り、データが使用可能になるまで、メソッドはブロックされ Socket.ReceiveTimeout ます。If no data is available for reading, the Receive method will block until data is available, unless a time-out value was set by using Socket.ReceiveTimeout. タイムアウト値を超えた場合、この呼び出しは Receive をスローし SocketException ます。If the time-out value was exceeded, the Receive call throws a SocketException. 非ブロッキングモードで、プロトコルスタックバッファーのに使用できるデータがない場合、 Receive メソッドは直ちに完了し、をスローし SocketException ます。If you are in non-blocking mode, and there is no data available in the in the protocol stack buffer, the Receive method will complete immediately and throw a SocketException. プロパティを使用して、 Available データを読み取り可能にするかどうかを判断できます。You can use the Available property to determine if data is available for reading. Availableが0以外の場合は、受信操作を再試行します。When Available is non-zero, retry the receive operation.

接続指向のを使用している場合、 Socket メソッドは、 Receive バッファーのサイズまで、使用可能な限り多くのデータを読み取ります。If you are using a connection-oriented Socket, the Receive method will read as much data as is available, up to the size of the buffer. リモートホストが Socket メソッドとの接続を切断 Shutdown し、使用可能なすべてのデータを受信した場合、 Receive メソッドは直ちに完了し、0バイトを返します。If the remote host shuts down the Socket connection with the Shutdown method, and all available data has been received, the Receive method will complete immediately and return zero bytes.

コネクションレスを使用している場合 SocketReceive は、メソッドで指定した送信先アドレスからキューに置かれた最初のデータグラムを読み取り Connect ます。If you are using a connectionless Socket,Receive will read the first queued datagram from the destination address you specify in the Connect method. 受信したデータグラムがパラメーターのサイズよりも大きい場合は buffersbuffers メッセージの最初の部分を入力し、余分なデータが失われて SocketException がスローされます。If the datagram you receive is larger than the size of the buffers parameter, buffers gets filled with the first part of the message, the excess data is lost and a SocketException is thrown.

注意

を受け取った場合は、プロパティを使用して、 SocketException SocketException.ErrorCode 特定のエラーコードを取得します。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得したら、 Windows Sockets version 2 API エラーコード のドキュメントを参照して、エラーの詳細な説明を参照してください。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

こちらもご覧ください

適用対象

Receive(Byte[], Int32, SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket から指定したバイト数のデータを受信して受信バッファーに格納します。Receives the specified number of bytes of data from a bound Socket into a receive buffer, using the specified SocketFlags.

public:
 int Receive(cli::array <System::Byte> ^ buffer, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Receive (byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * int * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), size As Integer, socketFlags As SocketFlags) As Integer

パラメーター

buffer
Byte[]

受信したデータの保存場所となる Byte 型の配列。An array of type Byte that is the storage location for the received data.

size
Int32

受信するバイト数。The number of bytes to receive.

socketFlags
SocketFlags

SocketFlags 値のビットごとの組み合わせ。A bitwise combination of the SocketFlags values.

戻り値

Int32

受信されたバイト数。The number of bytes received.

例外

buffernullです。buffer is null.

sizebuffer のサイズを超えています。size exceeds the size of buffer.

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

Socket が閉じられました。The Socket has been closed.

コール スタック内の呼び出し元が、必要なアクセス許可を保持していません。A caller in the call stack does not have the required permissions.

次のは、にあるデータを受け取り、 buffer にを指定し None SocketFlags ます。The following receives the data found into buffer, and specifies None for SocketFlags.

// Receive the host home page content and loop until all the data is received.
Int32 bytes = s->Receive( RecvBytes, RecvBytes->Length, SocketFlags::None );
strRetPage =  "Default HTML page on ";
strRetPage->Concat( server,  ":\r\n", ASCII->GetString( RecvBytes, 0, bytes ) );
while ( bytes > 0 )
{
   bytes = s->Receive( RecvBytes, RecvBytes->Length, SocketFlags::None );
   strRetPage->Concat( ASCII->GetString( RecvBytes, 0, bytes ) );
}



// Receive the host home page content and loop until all the data is received.
Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = "Default HTML page on " + server + ":\r\n";
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);

while (bytes > 0)
{
  bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
  strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
}


' Receive the host home page content and loop until all the data is received.

'Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0)
Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0)

strRetPage = "Default HTML page on " + server + ":\r\n"
strRetPage = "Default HTML page on " + server + ":" + ControlChars.Lf + ControlChars.NewLine

Dim i As Integer

While bytes > 0

  bytes = s.Receive(RecvBytes, RecvBytes.Length, 0)

  strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes)

End While

注釈

メソッドは、 Receive パラメーターにデータを読み込み、 buffer 正常に読み取られたバイト数を返します。The Receive method reads data into the buffer parameter and returns the number of bytes successfully read. Receive接続指向ソケットとコネクションレスソケットの両方からを呼び出すことができます。You can call Receive from both connection-oriented and connectionless sockets.

このオーバーロードでは、受信バッファー、受信するバイト数、および必要なを指定する必要があり SocketFlags ます。This overload only requires you to provide a receive buffer, the number of bytes you want to receive, and the necessary SocketFlags.

接続指向プロトコルを使用している場合は、を呼び出して Connect リモートホスト接続を確立するか、を Accept 呼び出す前に受信接続を受け入れる必要があり Receive ます。If you are using a connection-oriented protocol, you must either call Connect to establish a remote host connection, or Accept to accept an incoming connection prior to calling Receive. メソッドは、メソッド Receive またはメソッドで確立されたリモートホストから到着したデータのみを読み取り Connect Accept ます。The Receive method will only read data that arrives from the remote host established in the Connect or Accept method. コネクションレスプロトコルを使用している場合は、メソッドを使用することもでき ReceiveFrom ます。If you are using a connectionless protocol, you can also use the ReceiveFrom method. ReceiveFrom では、任意のホストから到着したデータを受信できます。ReceiveFrom will allow you to receive data arriving from any host.

読み取り可能なデータがない場合は、 Receive を使用してタイムアウト値が設定されていない限り、データが使用可能になるまで、メソッドはブロックされ Socket.ReceiveTimeout ます。If no data is available for reading, the Receive method will block until data is available, unless a time-out value was set by using Socket.ReceiveTimeout. タイムアウト値を超えた場合、 Receive を呼び出すと、がスローされ SocketException ます。If the time-out value was exceeded, the Receive call will throw a SocketException. 非ブロッキングモードで、プロトコルスタックバッファーのに使用できるデータがない場合、 Receive メソッドは直ちに完了し、をスローし SocketException ます。If you are in non-blocking mode, and there is no data available in the in the protocol stack buffer, The Receive method will complete immediately and throw a SocketException. プロパティを使用して、 Available データを読み取り可能にするかどうかを判断できます。You can use the Available property to determine if data is available for reading. Availableが0以外の場合は、受信操作を再試行してください。When Available is non-zero, retry your receive operation.

接続指向のを使用している場合、メソッドは、 Socket Receive パラメーターで指定されたバイト数まで、使用可能な量のデータを読み取ります sizeIf you are using a connection-oriented Socket, the Receive method will read as much data as is available, up to the number of bytes specified by the size parameter. リモートホストが Socket メソッドとの接続を切断 Shutdown し、使用可能なすべてのデータを受信した場合、 Receive メソッドは直ちに完了し、0バイトを返します。If the remote host shuts down the Socket connection with the Shutdown method, and all available data has been received, the Receive method will complete immediately and return zero bytes.

コネクションレスを使用している場合 SocketReceive は、メソッドで指定した送信先アドレスからキューに置かれた最初のデータグラムを読み取り Connect ます。If you are using a connectionless Socket, Receive will read the first queued datagram from the destination address you specify in the Connect method. 受信したデータグラムがパラメーターのサイズよりも大きい場合は bufferbuffer メッセージの最初の部分を入力し、余分なデータが失われて SocketException がスローされます。If the datagram you receive is larger than the size of the buffer parameter, buffer gets filled with the first part of the message, the excess data is lost and a SocketException is thrown.

注意

を受け取った場合は、プロパティを使用して、 SocketException SocketException.ErrorCode 特定のエラーコードを取得します。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得したら、 Windows Sockets version 2 API エラーコード のドキュメントを参照して、エラーの詳細な説明を参照してください。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

こちらもご覧ください

適用対象

Receive(IList<ArraySegment<Byte>>, SocketFlags)

重要

この API は CLS 準拠ではありません。

CLS 準拠の代替
System.Net.Sockets.Socket.Receive(Byte[], SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーのリストに格納します。Receives data from a bound Socket into the list of receive buffers, using the specified SocketFlags.

public:
 int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public int Receive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
[System.CLSCompliant(false)]
public int Receive (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> int
[<System.CLSCompliant(false)>]
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Integer

パラメーター

buffers
IList<ArraySegment<Byte>>

受信したデータを格納する Byte 型の複数の ArraySegment<T> のリスト。A list of ArraySegment<T>s of type Byte that contains the received data.

socketFlags
SocketFlags

SocketFlags 値のビットごとの組み合わせ。A bitwise combination of the SocketFlags values.

戻り値

Int32

受信されたバイト数。The number of bytes received.

属性

例外

buffersnullです。buffers is null.

- または --or- buffers.Count が 0 です。buffers.Count is zero.

ソケットへのアクセスを試みているときにエラーが発生しました。An error occurred while attempting to access the socket.

Socket が閉じられました。The Socket has been closed.

次のコード例は、接続されたでデータを受信する方法を示して Socket います。The following code example demonstrates how to receive data on a connected Socket.


// Build the buffers for the receive.
List<ArraySegment<Byte> >^ receiveBuffers = 
    gcnew List<ArraySegment<Byte> >(2);

array<Byte>^ bigBuffer = gcnew array<Byte>(1024);

// Specify the first buffer segment (2 bytes, starting 
// at the 4th element of bigBuffer)
receiveBuffers->Add(ArraySegment<Byte>(bigBuffer, 4, 2));

// Specify the second buffer segment (500 bytes, starting
// at the 20th element of bigBuffer)
receiveBuffers->Add(
    ArraySegment<Byte>(bigBuffer, 20, 500));

tcpSocket->Receive(receiveBuffers);

Console::WriteLine("{0}", 
    asciiEncoding->GetString(bigBuffer));

// Build the buffers for the receive.
List<ArraySegment<byte>> recvBuffers =
                         new List<ArraySegment<byte>>(2);

byte[] bigBuffer = new byte[1024];

// Specify the first buffer segment (2 bytes, starting
// at the 4th element of bigBuffer)
recvBuffers.Add(new ArraySegment<byte>
                        (bigBuffer, 4, 2));

// Specify the second buffer segment (500 bytes, starting
// at the 20th element of bigBuffer)
recvBuffers.Add(new ArraySegment<byte>
                        (bigBuffer, 20, 500));

int bytesReceived = mySocket.Receive(recvBuffers);

Console.WriteLine("{0}", ASCII.GetString(bigBuffer));

注釈

このメソッドは、パラメーターにデータを読み込み、 buffers 正常に読み取られたバイト数を返します。This method reads data into the buffers parameter and returns the number of bytes successfully read. 接続指向ソケットとコネクションレスソケットの両方からを呼び出すことができます。You can call from both connection-oriented and connectionless sockets.

このオーバーロードでは、1つ以上の受信バッファーを指定する必要があります。This overload requires you to provide one or more receive buffers. SocketFlags既定値は None です。The SocketFlags value defaults to None.

接続指向プロトコルを使用している場合は、を呼び出して Connect リモートホスト接続を確立するか、を Accept 呼び出す前に受信接続を受け入れる必要があり Receive ます。If you are using a connection-oriented protocol, you must either call Connect to establish a remote host connection, or Accept to accept an incoming connection prior to calling Receive. メソッドは、メソッド Receive またはメソッドで確立されたリモートホスト接続から受信したデータのみを読み取り Connect Accept ます。The Receive method will only read data that arrives from the remote host connection established in the Connect or Accept method. コネクションレスプロトコルを使用している場合は、メソッドを使用することもでき ReceiveFrom ます。If you are using a connectionless protocol, you can also use the ReceiveFrom method. ReceiveFrom では、任意のホストから到着したデータを受信できます。ReceiveFrom will allow you to receive data arriving from any host.

読み取り可能なデータがない場合は、 Receive を使用してタイムアウト値が設定されていない限り、データが使用可能になるまで、メソッドはブロックされ Socket.ReceiveTimeout ます。If no data is available for reading, the Receive method will block until data is available, unless a time-out value was set by using Socket.ReceiveTimeout. タイムアウト値を超えた場合、この呼び出しは Receive をスローし SocketException ます。If the time-out value was exceeded, the Receive call throws a SocketException. 非ブロッキングモードで、プロトコルスタックバッファーのに使用できるデータがない場合、 Receive メソッドは直ちに完了し、をスローし SocketException ます。If you are in non-blocking mode, and there is no data available in the in the protocol stack buffer, the Receive method will complete immediately and throw a SocketException. プロパティを使用して、 Available データを読み取り可能にするかどうかを判断できます。You can use the Available property to determine if data is available for reading. Availableが0以外の場合は、受信操作を再試行します。When Available is non-zero, retry the receive operation.

接続指向のを使用している場合、 Socket メソッドは、 Receive バッファーのサイズまで、使用可能な限り多くのデータを読み取ります。If you are using a connection-oriented Socket, the Receive method will read as much data as is available, up to the size of the buffer. リモートホストが Socket メソッドとの接続を切断 Shutdown し、使用可能なすべてのデータを受信した場合、 Receive メソッドは直ちに完了し、0バイトを返します。If the remote host shuts down the Socket connection with the Shutdown method, and all available data has been received, the Receive method will complete immediately and return zero bytes.

コネクションレス型を使用している場合 SocketReceive は、メソッドで指定した宛先アドレスからエンキューされた最初のデータグラムを読み取り Connect ます。If you are using a connectionless Socket, Receive will read the first enqueued datagram from the destination address you specify in the Connect method. 受信したデータグラムがパラメーターのサイズよりも大きい場合は buffersbuffers メッセージの最初の部分を入力し、余分なデータが失われて SocketException がスローされます。If the datagram you receive is larger than the size of the buffers parameter, buffers gets filled with the first part of the message, the excess data is lost and a SocketException is thrown.

注意

を受け取った場合は、プロパティを使用して、 SocketException SocketException.ErrorCode 特定のエラーコードを取得します。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得したら、 Windows Sockets version 2 API エラーコード のドキュメントを参照して、エラーの詳細な説明を参照してください。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

こちらもご覧ください

適用対象

Receive(Byte[], SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーに格納します。Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

public:
 int Receive(cli::array <System::Byte> ^ buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Receive (byte[] buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), socketFlags As SocketFlags) As Integer

パラメーター

buffer
Byte[]

受信したデータの保存場所となる Byte 型の配列。An array of type Byte that is the storage location for the received data.

socketFlags
SocketFlags

SocketFlags 値のビットごとの組み合わせ。A bitwise combination of the SocketFlags values.

戻り値

Int32

受信されたバイト数。The number of bytes received.

例外

buffernullです。buffer is null.

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

Socket が閉じられました。The Socket has been closed.

コール スタック内の呼び出し元が、必要なアクセス許可を保持していません。A caller in the call stack does not have the required permissions.

次のコード例では、データバッファーを指定し、 SocketFlags 接続されているでデータを受信し Socket ます。The following code example specifies a data buffer, and SocketFlags for receiving data on a connected Socket.

// Displays sending with a connected socket
// using the overload that takes a buffer and socket flags.
int SendReceiveTest2( Socket^ server )
{
   array<Byte>^ msg = Encoding::UTF8->GetBytes( "This is a test" );
   array<Byte>^ bytes = gcnew array<Byte>(256);
   try
   {
      // Blocks until send returns.
      int byteCount = server->Send( msg, SocketFlags::None );
      Console::WriteLine( "Sent {0} bytes.", byteCount.ToString() );
      
      // Get reply from the server.
      byteCount = server->Receive( bytes, SocketFlags::None );
      if ( byteCount > 0 )
      {
         Console::WriteLine( Encoding::UTF8->GetString( bytes ) );
      }
   }
   catch ( SocketException^ e ) 
   {
      Console::WriteLine( "{0} Error code: {1}.", e->Message, e->ErrorCode.ToString() );
      return (e->ErrorCode);
   }
   return 0;
}
// Displays sending with a connected socket
// using the overload that takes a buffer and socket flags.
public static int SendReceiveTest2(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int byteCount = server.Send(msg, SocketFlags.None);
        Console.WriteLine("Sent {0} bytes.", byteCount);

        // Get reply from the server.
        byteCount = server.Receive(bytes, SocketFlags.None);
        if (byteCount > 0)
            Console.WriteLine(Encoding.UTF8.GetString(bytes));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer and socket flags.
Public Shared Function SendReceiveTest2(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim byteCount As Integer = server.Send(msg, SocketFlags.None)
        Console.WriteLine("Sent {0} bytes.", byteCount)
        
        ' Get reply from the server.
        byteCount = server.Receive(bytes, SocketFlags.None)
        If byteCount > 0 Then
            Console.WriteLine(Encoding.UTF8.GetString(bytes))
        End If
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest2

注釈

メソッドは、 Receive バッファーパラメーターにデータを読み込み、正常に読み取られたバイト数を返します。The Receive method reads data into the buffer parameter and returns the number of bytes successfully read. Receive接続指向ソケットとコネクションレスソケットの両方からを呼び出すことができます。You can call Receive from both connection-oriented and connectionless sockets.

このオーバーロードでは、受信バッファーと必要なを指定する必要があり SocketFlags ます。This overload only requires you to provide a receive buffer and the necessary SocketFlags. バッファーオフセットは既定で0に設定され、サイズは既定でバイトパラメーターの長さに設定されます。The buffer offset defaults to 0, and the size defaults to the length of the byte parameter.

接続指向プロトコルを使用している場合は、を呼び出して Connect リモートホスト接続を確立するか、を Accept 呼び出す前に受信接続を受け入れる必要があり Receive ます。If you are using a connection-oriented protocol, you must either call Connect to establish a remote host connection, or Accept to accept an incoming connection prior to calling Receive. メソッドは、メソッド Receive またはメソッドで確立されたリモートホストから到着したデータのみを読み取り Connect Accept ます。The Receive method will only read data that arrives from the remote host established in the Connect or Accept method. コネクションレスプロトコルを使用している場合は、メソッドを使用することもでき ReceiveFrom ます。If you are using a connectionless protocol, you can also use the ReceiveFrom method. ReceiveFrom では、任意のホストから到着したデータを受信できます。ReceiveFrom will allow you to receive data arriving from any host.

読み取り可能なデータがない場合、 Receive メソッドはデータが使用可能になるまでブロックします。If no data is available for reading, the Receive method will block until data is available. 非ブロッキングモードで、プロトコルスタックバッファーに使用できるデータがない場合、 Receive メソッドは直ちに完了し、をスローし SocketException ます。If you are in non-blocking mode, and there is no data available in the protocol stack buffer, the Receive method will complete immediately and throw a SocketException. プロパティを使用して、 Available データを読み取り可能にするかどうかを判断できます。You can use the Available property to determine if data is available for reading. Availableが0以外の場合は、受信操作を再試行してください。When Available is non-zero, retry your receive operation.

接続指向のを使用している場合 SocketReceive メソッドは、バッファーのサイズまで使用可能な量のデータを読み取ります。If you are using a connection-oriented Socket, the Receive method will read as much data as is available up to the size of the buffer. リモートホストが Socket メソッドとの接続を切断 Shutdown し、使用可能なすべてのデータを受信した場合、 Receive メソッドは直ちに完了し、0バイトを返します。If the remote host shuts down the Socket connection with the Shutdown method, and all available data has been received, the Receive method will complete immediately and return zero bytes.

コネクションレス型を使用している場合 SocketReceive は、メソッドで指定した宛先アドレスからエンキューされた最初のデータグラムを読み取り Connect ます。If you are using a connectionless Socket, Receive will read the first enqueued datagram from the destination address you specify in the Connect method. 受信したデータグラムがパラメーターのサイズよりも大きい場合は bufferbuffer メッセージの最初の部分を入力し、余分なデータが失われて SocketException がスローされます。If the datagram you receive is larger than the size of the buffer parameter, buffer gets filled with the first part of the message, the excess data is lost and a SocketException is thrown.

注意

を受け取った場合は、プロパティを使用して、 SocketException SocketException.ErrorCode 特定のエラーコードを取得します。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得したら、 Windows Sockets version 2 API エラーコード のドキュメントを参照して、エラーの詳細な説明を参照してください。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

こちらもご覧ください

適用対象

Receive(Span<Byte>)

バインドされた Socket からデータを受信し、受信バッファーに格納します。Receives data from a bound Socket into a receive buffer.

public:
 int Receive(Span<System::Byte> buffer);
public int Receive (Span<byte> buffer);
member this.Receive : Span<byte> -> int
Public Function Receive (buffer As Span(Of Byte)) As Integer

パラメーター

buffer
Span<Byte>

受信したデータの保存場所となるバイトのスパン。A span of bytes that is the storage location for the received data.

戻り値

Int32

受信されたバイト数。The number of bytes received.

例外

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

Socket が閉じられました。The Socket has been closed.

コール スタック内の呼び出し元が、必要なアクセス許可を保持していません。A caller in the call stack does not have the required permissions.

注釈

メソッドは、 Receive バッファーパラメーターにデータを読み込み、正常に読み取られたバイト数を返します。The Receive method reads data into the buffer parameter and returns the number of bytes successfully read. Receive接続指向ソケットとコネクションレスソケットの両方からを呼び出すことができます。You can call Receive from both connection-oriented and connectionless sockets.

このオーバーロードでは、受信バッファーのみを指定する必要があります。This overload only requires you to provide a receive buffer. バッファーオフセットの既定値は0で、サイズは既定でバッファーパラメーターの長さに設定され、既定値はに設定され SocketFlags None ます。The buffer offset defaults to 0, the size defaults to the length of the buffer parameter, and the SocketFlags value defaults to None.

接続指向プロトコルを使用している場合は、を呼び出して Connect リモートホスト接続を確立するか、を Accept 呼び出す前に受信接続を受け入れる必要があり Receive ます。If you're using a connection-oriented protocol, you must either call Connect to establish a remote host connection, or Accept to accept an incoming connection before calling Receive. メソッドは、メソッド Receive またはメソッドで確立されたリモートホストから到着したデータのみを読み取り Connect Accept ます。The Receive method will only read data that arrives from the remote host established in the Connect or Accept method. コネクションレスプロトコルを使用している場合は、メソッドを使用することもでき ReceiveFrom ます。If you're using a connectionless protocol, you can also use the ReceiveFrom method. ReceiveFrom では、任意のホストから到着したデータを受信できます。ReceiveFrom will allow you to receive data arriving from any host.

読み取り可能なデータがない場合は、 Receive を使用してタイムアウト値が設定されていない限り、データが使用可能になるまで、メソッドはブロックされ Socket.ReceiveTimeout ます。If no data is available for reading, the Receive method will block until data is available, unless a time-out value was set by using Socket.ReceiveTimeout. タイムアウト値を超えた場合、 Receive を呼び出すと、がスローされ SocketException ます。When the time-out value is exceeded, the Receive call will throw a SocketException. 非ブロッキングモードで、プロトコルスタックバッファーに使用できるデータがない場合、 Receive メソッドは直ちに完了し、をスローし SocketException ます。If you're in non-blocking mode, and there's no data available in the protocol stack buffer, the Receive method will complete immediately and throw a SocketException. プロパティを使用して、 Available データを読み取り可能にするかどうかを判断できます。You can use the Available property to determine if data is available for reading. Availableが0以外の場合は、受信操作を再試行します。When Available is non-zero, retry the receive operation.

接続指向のを使用している場合、 Socket メソッドは、 Receive バッファーのサイズまで、使用可能な限り多くのデータを読み取ります。If you're using a connection-oriented Socket, the Receive method will read as much data as is available, up to the size of the buffer. リモートホストが Socket メソッドとの接続を切断 Shutdown し、使用可能なすべてのデータを受信した場合、 Receive メソッドは直ちに完了し、0バイトを返します。If the remote host shuts down the Socket connection with the Shutdown method, and all available data has been received, the Receive method will complete immediately and return zero bytes.

コネクションレス型を使用している場合 SocketReceive は、メソッドで指定した送信先アドレスからキューに置かれた最初のデータグラムを読み取り Connect ます。If you're using a connectionless Socket, Receive will read the first queued datagram from the destination address you specify in the Connect method. 受信したデータグラムがパラメーターのサイズより大きい場合 buffer 、は buffer メッセージの最初の部分を格納し、余分なデータは失われ、 SocketException がスローされます。If the datagram you receive is larger than the size of the buffer parameter, buffer gets filled with the first part of the message, the excess data is lost, and a SocketException is thrown.

注意

を受け取った場合は、プロパティを使用して、 SocketException SocketException.ErrorCode 特定のエラーコードを取得します。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得したら、 Windows Sockets version 2 API エラーコード のドキュメントを参照して、エラーの詳細な説明を参照してください。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

こちらもご覧ください

適用対象

Receive(IList<ArraySegment<Byte>>)

バインドされた Socket からデータを受信して、受信バッファーのリストに格納します。Receives data from a bound Socket into the list of receive buffers.

public:
 int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public int Receive (System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte))) As Integer

パラメーター

buffers
IList<ArraySegment<Byte>>

受信したデータを格納する Byte 型の複数の ArraySegment<T> のリスト。A list of ArraySegment<T>s of type Byte that contains the received data.

戻り値

Int32

受信されたバイト数。The number of bytes received.

例外

buffer パラメーターが null です。The buffer parameter is null.

ソケットへのアクセスを試みているときにエラーが発生しました。An error occurred while attempting to access the socket.

Socket が閉じられました。The Socket has been closed.

注釈

このメソッドは、buffers パラメーターにデータを読み込み、正常に読み取られたバイト数を返します。This method reads data into the buffers parameter and returns the number of bytes successfully read. 接続指向ソケットとコネクションレスソケットの両方からを呼び出すことができます。You can call from both connection-oriented and connectionless sockets.

このオーバーロードでは、1つ以上の受信バッファーを指定する必要があります。This overload requires you to provide one or more receive buffers.

接続指向プロトコルを使用している場合は、を呼び出して Connect リモートホスト接続を確立するか、を Accept 呼び出す前に受信接続を受け入れる必要があり Receive ます。If you are using a connection-oriented protocol, you must either call Connect to establish a remote host connection, or Accept to accept an incoming connection prior to calling Receive. メソッドは、メソッド Receive またはメソッドで確立されたリモートホスト接続から受信したデータのみを読み取り Connect Accept ます。The Receive method will only read data that arrives from the remote host connection established in the Connect or Accept method. コネクションレスプロトコルを使用している場合は、メソッドを使用することもでき ReceiveFrom ます。If you are using a connectionless protocol, you can also use the ReceiveFrom method. ReceiveFrom では、任意のホストから到着したデータを受信できます。ReceiveFrom will allow you to receive data arriving from any host.

読み取り可能なデータがない場合は、 Receive を使用してタイムアウト値が設定されていない限り、データが使用可能になるまで、メソッドはブロックされ Socket.ReceiveTimeout ます。If no data is available for reading, the Receive method will block until data is available, unless a time-out value was set by using Socket.ReceiveTimeout. タイムアウト値を超えた場合、 Receive を呼び出すと、がスローされ SocketException ます。If the time-out value was exceeded, the Receive call will throw a SocketException. 非ブロッキングモードで、プロトコルスタックバッファーのに使用できるデータがない場合、 Receive メソッドは直ちに完了し、をスローし SocketException ます。If you are in non-blocking mode, and there is no data available in the in the protocol stack buffer, the Receive method will complete immediately and throw a SocketException. プロパティを使用して、 Available データを読み取り可能にするかどうかを判断できます。You can use the Available property to determine if data is available for reading. Availableが0以外の場合は、受信操作を再試行します。When Available is non-zero, retry the receive operation.

接続指向のを使用している場合、 Socket メソッドは、 Receive バッファーのサイズまで、使用可能な限り多くのデータを読み取ります。If you are using a connection-oriented Socket, the Receive method will read as much data as is available, up to the size of the buffer. リモートホストが Socket メソッドとの接続を切断 Shutdown し、使用可能なすべてのデータを受信した場合、 Receive メソッドは直ちに完了し、0バイトを返します。If the remote host shuts down the Socket connection with the Shutdown method, and all available data has been received, the Receive method will complete immediately and return zero bytes.

コネクションレス型を使用している場合 SocketReceive は、メソッドで指定した宛先アドレスからエンキューされた最初のデータグラムを読み取り Connect ます。If you are using a connectionless Socket, Receive will read the first enqueued datagram from the destination address you specify in the Connect method. 受信したデータグラムがパラメーターのサイズよりも大きい場合は buffersbuffers メッセージの最初の部分を入力し、余分なデータが失われて SocketException がスローされます。If the datagram you receive is larger than the size of the buffers parameter, buffers gets filled with the first part of the message, the excess data is lost and a SocketException is thrown.

注意

を受け取った場合は、プロパティを使用して、 SocketException SocketException.ErrorCode 特定のエラーコードを取得します。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得したら、 Windows Sockets version 2 API エラーコード のドキュメントを参照して、エラーの詳細な説明を参照してください。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

メモ このメンバーは、アプリケーションでネットワークトレースを有効にしたときにトレース情報を出力します。Note This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

適用対象

Receive(Byte[])

バインドされた Socket からデータを受信し、受信バッファーに格納します。Receives data from a bound Socket into a receive buffer.

public:
 int Receive(cli::array <System::Byte> ^ buffer);
public int Receive (byte[] buffer);
member this.Receive : byte[] -> int
Public Function Receive (buffer As Byte()) As Integer

パラメーター

buffer
Byte[]

受信したデータの保存場所となる Byte 型の配列。An array of type Byte that is the storage location for the received data.

戻り値

Int32

受信されたバイト数。The number of bytes received.

例外

buffernullです。buffer is null.

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

Socket が閉じられました。The Socket has been closed.

コール スタック内の呼び出し元が、必要なアクセス許可を保持していません。A caller in the call stack does not have the required permissions.

次のコード例では、接続されているでデータを受信し Socket ます。The following code example receives data on a connected Socket.

// Displays sending with a connected socket
// using the overload that takes a buffer.
int SendReceiveTest1( Socket^ server )
{
   array<Byte>^ msg = Encoding::UTF8->GetBytes( "This is a test" );
   array<Byte>^ bytes = gcnew array<Byte>(256);
   try
   {
      // Blocks until send returns.
      int byteCount = server->Send( msg );
      Console::WriteLine( "Sent {0} bytes.", byteCount.ToString() );
      
      // Get reply from the server.
      byteCount = server->Receive( bytes );
      if ( byteCount > 0 )
      {
         Console::WriteLine( Encoding::UTF8->GetString( bytes ) );
      }
   }
   catch ( SocketException^ e ) 
   {
      Console::WriteLine( "{0} Error code: {1}.", e->Message, e->ErrorCode.ToString() );
      return ( e->ErrorCode );
   }
   return 0;
}
// Displays sending with a connected socket
// using the overload that takes a buffer.
public static int SendReceiveTest1(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int i = server.Send(msg);
        Console.WriteLine("Sent {0} bytes.", i);

        // Get reply from the server.
        i = server.Receive(bytes);
        Console.WriteLine(Encoding.UTF8.GetString(bytes));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer.
Public Shared Function SendReceiveTest1(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim i As Integer = server.Send(msg)
        Console.WriteLine("Sent {0} bytes.", i)
        
        ' Get reply from the server.
        i = server.Receive(bytes)
        Console.WriteLine(Encoding.UTF8.GetString(bytes))
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest1

注釈

メソッドは、 Receive バッファーパラメーターにデータを読み込み、正常に読み取られたバイト数を返します。The Receive method reads data into the buffer parameter and returns the number of bytes successfully read. Receive接続指向ソケットとコネクションレスソケットの両方からを呼び出すことができます。You can call Receive from both connection-oriented and connectionless sockets.

このオーバーロードでは、受信バッファーのみを指定する必要があります。This overload only requires you to provide a receive buffer. バッファーオフセットの既定値は0で、サイズは既定でバッファーパラメーターの長さに設定され、既定値はに設定され SocketFlags None ます。The buffer offset defaults to 0, the size defaults to the length of the buffer parameter, and the SocketFlags value defaults to None.

接続指向プロトコルを使用している場合は、を呼び出して Connect リモートホスト接続を確立するか、を Accept 呼び出す前に受信接続を受け入れる必要があり Receive ます。If you are using a connection-oriented protocol, you must either call Connect to establish a remote host connection, or Accept to accept an incoming connection prior to calling Receive. メソッドは、メソッド Receive またはメソッドで確立されたリモートホストから到着したデータのみを読み取り Connect Accept ます。The Receive method will only read data that arrives from the remote host established in the Connect or Accept method. コネクションレスプロトコルを使用している場合は、メソッドを使用することもでき ReceiveFrom ます。If you are using a connectionless protocol, you can also use the ReceiveFrom method. ReceiveFrom では、任意のホストから到着したデータを受信できます。ReceiveFrom will allow you to receive data arriving from any host.

読み取り可能なデータがない場合は、 Receive を使用してタイムアウト値が設定されていない限り、データが使用可能になるまで、メソッドはブロックされ Socket.ReceiveTimeout ます。If no data is available for reading, the Receive method will block until data is available, unless a time-out value was set by using Socket.ReceiveTimeout. タイムアウト値を超えた場合、 Receive を呼び出すと、がスローされ SocketException ます。If the time-out value was exceeded, the Receive call will throw a SocketException. 非ブロッキングモードで、プロトコルスタックバッファーのに使用できるデータがない場合、 Receive メソッドは直ちに完了し、をスローし SocketException ます。If you are in non-blocking mode, and there is no data available in the in the protocol stack buffer, the Receive method will complete immediately and throw a SocketException. プロパティを使用して、 Available データを読み取り可能にするかどうかを判断できます。You can use the Available property to determine if data is available for reading. Availableが0以外の場合は、受信操作を再試行します。When Available is non-zero, retry the receive operation.

接続指向のを使用している場合、 Socket メソッドは、 Receive バッファーのサイズまで、使用可能な限り多くのデータを読み取ります。If you are using a connection-oriented Socket, the Receive method will read as much data as is available, up to the size of the buffer. リモートホストが Socket メソッドとの接続を切断 Shutdown し、使用可能なすべてのデータを受信した場合、 Receive メソッドは直ちに完了し、0バイトを返します。If the remote host shuts down the Socket connection with the Shutdown method, and all available data has been received, the Receive method will complete immediately and return zero bytes.

コネクションレスを使用している場合 SocketReceive は、メソッドで指定した送信先アドレスからキューに置かれた最初のデータグラムを読み取り Connect ます。If you are using a connectionless Socket, Receive will read the first queued datagram from the destination address you specify in the Connect method. 受信したデータグラムがパラメーターのサイズよりも大きい場合は bufferbuffer メッセージの最初の部分を入力し、余分なデータが失われて SocketException がスローされます。If the datagram you receive is larger than the size of the buffer parameter, buffer gets filled with the first part of the message, the excess data is lost and a SocketException is thrown.

注意

を受け取った場合は、プロパティを使用して、 SocketException SocketException.ErrorCode 特定のエラーコードを取得します。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得したら、 Windows Sockets version 2 API エラーコード のドキュメントを参照して、エラーの詳細な説明を参照してください。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

こちらもご覧ください

適用対象

Receive(Span<Byte>, SocketFlags)

指定した SocketFlags を使用し、バインドされた Socket からデータを受信して受信バッファーに格納します。Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

public:
 int Receive(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Receive (Span<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : Span<byte> * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Span(Of Byte), socketFlags As SocketFlags) As Integer

パラメーター

buffer
Span<Byte>

受信したデータの保存場所となるバイトのスパン。A span of bytes that is the storage location for the received data.

socketFlags
SocketFlags

送受信の動作を指定する列挙値のビットごとの組み合わせ。A bitwise combination of the enumeration values that specifies send and receive behaviors.

戻り値

Int32

受信されたバイト数。The number of bytes received.

例外

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket.

Socket が閉じられました。The Socket has been closed.

コール スタック内の呼び出し元が、必要なアクセス許可を保持していません。A caller in the call stack does not have the required permissions.

注釈

メソッドは、 Receive バッファーパラメーターにデータを読み込み、正常に読み取られたバイト数を返します。The Receive method reads data into the buffer parameter and returns the number of bytes successfully read. Receive接続指向ソケットとコネクションレスソケットの両方からを呼び出すことができます。You can call Receive from both connection-oriented and connectionless sockets.

このオーバーロードでは、受信バッファーのみを指定する必要があります。This overload only requires you to provide a receive buffer. バッファーオフセットの既定値は0で、サイズは既定でバッファーパラメーターの長さに設定され、既定値はに設定され SocketFlags None ます。The buffer offset defaults to 0, the size defaults to the length of the buffer parameter, and the SocketFlags value defaults to None.

接続指向プロトコルを使用している場合は、を呼び出して Connect リモートホスト接続を確立するか、を Accept 呼び出す前に受信接続を受け入れる必要があり Receive ます。If you're using a connection-oriented protocol, you must either call Connect to establish a remote host connection, or Accept to accept an incoming connection prior to calling Receive. メソッドは、メソッド Receive またはメソッドで確立されたリモートホストから到着したデータのみを読み取り Connect Accept ます。The Receive method will only read data that arrives from the remote host established in the Connect or Accept method. コネクションレスプロトコルを使用している場合は、メソッドを使用することもでき ReceiveFrom ます。If you're using a connectionless protocol, you can also use the ReceiveFrom method. ReceiveFrom では、任意のホストから到着したデータを受信できます。ReceiveFrom will allow you to receive data arriving from any host.

読み取り可能なデータがない場合は、 Receive を使用してタイムアウト値が設定されていない限り、データが使用可能になるまで、メソッドはブロックされ Socket.ReceiveTimeout ます。If no data is available for reading, the Receive method will block until data is available, unless a time-out value was set by using Socket.ReceiveTimeout. タイムアウト値を超えた場合、 Receive を呼び出すと、がスローされ SocketException ます。When the time-out value is exceeded, the Receive call will throw a SocketException. 非ブロッキングモードで、プロトコルスタックバッファーに使用できるデータがない場合、 Receive メソッドは直ちに完了し、をスローし SocketException ます。If you're in non-blocking mode, and there is no data available in the protocol stack buffer, the Receive method will complete immediately and throw a SocketException. プロパティを使用して、 Available データを読み取り可能にするかどうかを判断できます。You can use the Available property to determine if data is available for reading. Availableが0以外の場合は、受信操作を再試行します。When Available is non-zero, retry the receive operation.

接続指向のを使用している場合、 Socket メソッドは、 Receive バッファーのサイズまで、使用可能な限り多くのデータを読み取ります。If you're using a connection-oriented Socket, the Receive method will read as much data as is available, up to the size of the buffer. リモートホストが Socket メソッドとの接続を切断 Shutdown し、使用可能なすべてのデータを受信した場合、 Receive メソッドは直ちに完了し、0バイトを返します。If the remote host shuts down the Socket connection with the Shutdown method, and all available data has been received, the Receive method will complete immediately and return zero bytes.

コネクションレス型を使用している場合 SocketReceive は、メソッドで指定した送信先アドレスからキューに置かれた最初のデータグラムを読み取り Connect ます。If you're using a connectionless Socket, Receive will read the first queued datagram from the destination address you specify in the Connect method. 受信したデータグラムがパラメーターのサイズより大きい場合 buffer 、は buffer メッセージの最初の部分を格納し、余分なデータは失われ、 SocketException がスローされます。If the datagram you receive is larger than the size of the buffer parameter, buffer gets filled with the first part of the message, the excess data is lost, and a SocketException is thrown.

注意

を受け取った場合は、プロパティを使用して、 SocketException SocketException.ErrorCode 特定のエラーコードを取得します。If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. このコードを取得したら、 Windows Sockets version 2 API エラーコード のドキュメントを参照して、エラーの詳細な説明を参照してください。After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。This member outputs trace information when you enable network tracing in your application. 詳細については、「 .NET Framework のネットワークトレース」を参照してください。For more information, see Network Tracing in the .NET Framework.

こちらもご覧ください

適用対象