Socket.Send メソッド

定義

接続された Socket にデータを送信します。Sends data to a connected Socket.

オーバーロード

Send(Byte[])

接続された Socket にデータを送信します。Sends data to a connected Socket.

Send(IList<ArraySegment<Byte>>)

リスト内のバッファーのセットを接続された Socket に送信します。Sends the set of buffers in the list to a connected Socket.

Send(ReadOnlySpan<Byte>)

接続された Socket にデータを送信します。Sends data to a connected Socket.

Send(Byte[], SocketFlags)

指定した SocketFlags を使用して、接続された Socket にデータを送信します。Sends data to a connected Socket using the specified SocketFlags.

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

指定した SocketFlags を使用して、リスト内のバッファーのセットを接続された Socket に送信します。Sends the set of buffers in the list to a connected Socket, using the specified SocketFlags.

Send(ReadOnlySpan<Byte>, SocketFlags)

指定した SocketFlags を使用して、接続された Socket にデータを送信します。Sends data to a connected Socket using the specified SocketFlags.

Send(Byte[], Int32, SocketFlags)

指定した SocketFlags を使用し、指定したバイト数のデータを、接続された Socket に送信します。Sends the specified number of bytes of data to a connected Socket, using the specified SocketFlags.

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

指定した SocketFlags を使用して、リスト内のバッファーのセットを接続された Socket に送信します。Sends the set of buffers in the list to a connected Socket, using the specified SocketFlags.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

指定した SocketFlags を使用して、接続された Socket にデータを送信します。Sends data to a connected Socket using the specified SocketFlags.

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

指定したオフセットから開始し、指定した SocketFlags を使用して、指定したバイト数のデータを接続された Socket に送信します。Sends the specified number of bytes of data to a connected Socket, starting at the specified offset, and using the specified SocketFlags.

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

指定したオフセットから開始し、指定した SocketFlags を使用して、指定したバイト数のデータを接続された Socket に送信します。Sends the specified number of bytes of data to a connected Socket, starting at the specified offset, and using the specified SocketFlags

Send(Byte[])

接続された Socket にデータを送信します。Sends data to a connected Socket.

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

パラメーター

buffer
Byte[]

送信されるデータを含む Byte 型の配列。An array of type Byte that contains the data to be sent.

戻り値

Socket に送信されたバイト数。The number of bytes sent to the Socket.

例外

buffernull です。buffer is null.

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

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

次のコード例は、接続された Socketでデータを送信する方法を示しています。The following code example demonstrates sending 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

注釈

Send は、Connect または Accept メソッドに指定されたリモートホストにデータを同期的に送信し、正常に送信されたバイト数を返します。Send synchronously sends data to the remote host specified in the Connect or Accept method and returns the number of bytes successfully sent. Send は、接続指向プロトコルとコネクションレスプロトコルの両方に使用できます。Send can be used for both connection-oriented and connectionless protocols.

このオーバーロードには、送信するデータを格納するバッファーが必要です。This overload requires a buffer that contains the data you want to send. SocketFlags 値の既定値は0です。バッファーオフセットの既定値は0で、既定で送信するバイト数はバッファーのサイズに設定されます。The SocketFlags value defaults to 0, the buffer offset defaults to 0, and the number of bytes to send defaults to the size of the buffer.

コネクションレスプロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、Send によって SocketExceptionがスローされます。If you are using a connectionless protocol, you must call Connect before calling this method, or Send will throw a SocketException. 接続指向プロトコルを使用している場合は、Connect を使用してリモートホスト接続を確立するか、Accept を使用して受信接続を許可する必要があります。If you are using a connection-oriented protocol, you must either use Connect to establish a remote host connection, or use Accept to accept an incoming connection.

コネクションレスプロトコルを使用していて、複数の異なるホストにデータを送信することを計画している場合は、SendTo 方法を使用する必要があります。If you are using a connectionless protocol and plan to send data to several different hosts, you should use the SendTo method. SendTo メソッドを使用しない場合は、Sendを呼び出すたびに Connect を呼び出す必要があります。If you do not use the SendTo method, you will have to call Connect before each call to Send. Connectを使用して既定のリモートホストを確立した後でも、SendTo を使用できます。You can use SendTo even after you have established a default remote host with Connect. また、Connectへの別の呼び出しを行うことによって、Send を呼び出す前に、既定のリモートホストを変更することもできます。You can also change the default remote host prior to calling Send by making another call to Connect.

接続指向プロトコルを使用している場合は、Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、バッファー内のすべてのバイトが送信されるまで、Send はブロックされます。If you are using a connection-oriented protocol, Send will block until all of the bytes in the buffer are sent, unless a time-out was set by using Socket.SendTimeout. タイムアウト値を超えた場合、Send の呼び出しによって SocketExceptionがスローされます。If the time-out value was exceeded, the Send call will throw a SocketException. 非ブロッキングモードでは、バッファー内のバイト数よりも少ない場合でも、Send は正常に完了することがあります。In nonblocking mode, Send may complete successfully even if it sends less than the number of bytes in the buffer. アプリケーションは、送信されたバイト数を追跡し、アプリケーションがバッファー内のバイトを送信するまで操作を再試行する必要があります。It is your application's responsibility to keep track of the number of bytes sent and to retry the operation until the application sends the bytes in the buffer. また、送信したデータがネットワークに直ちに表示される保証もありません。There is also no guarantee that the data you send will appear on the network immediately. ネットワークの効率を向上させるために、基になるシステムは、大量の送信データが収集されるまで転送を遅らせます。To increase network efficiency, the underlying system may delay transmission until a significant amount of outgoing data is collected. Send メソッドが正常に完了すると、基になるシステムにネットワーク送信用のデータをバッファーするための余裕があることを意味します。A successful completion of the Send method means that the underlying system has had room to buffer your data for a network send.

注意

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.

注意

送信が正常に完了しても、データが正常に配信されたことは示されません。The successful completion of a send does not indicate that the data was successfully delivered. 転送されるデータを保持するためにトランスポートシステム内で使用できるバッファー領域がない場合、ソケットが非ブロッキングモードに設定されていない限り、send はブロックされます。If no buffer space is available within the transport system to hold the data to be transmitted, send will block unless the socket has been placed in nonblocking mode.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。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.

こちらもご覧ください

Send(IList<ArraySegment<Byte>>)

リスト内のバッファーのセットを接続された Socket に送信します。Sends the set of buffers in the list to a connected Socket.

public:
 int Send(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public int Send (System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.Send : System.Collections.Generic.IList<ArraySegment<byte>> -> int
Public Function Send (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 data to be sent.

戻り値

Socket に送信されたバイト数。The number of bytes sent to the Socket.

例外

buffersnull です。buffers is null.

buffers が空です。buffers is empty.

ソケットへのアクセスを試行しているときにエラーが発生しました。An error occurred when attempting to access the socket. 以下の解説を参照してください。See remarks section below.

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

注釈

Send は、接続指向プロトコルとコネクションレスプロトコルの両方に使用できます。Send can be used for both connection-oriented and connectionless protocols.

このオーバーロードには、送信するデータを含むバッファーが少なくとも1つ必要です。This overload requires at least one buffer that contains the data you want to send.

コネクションレスプロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、Send によって SocketExceptionがスローされます。If you are using a connectionless protocol, you must call Connect before calling this method, or Send will throw a SocketException. 接続指向プロトコルを使用している場合は、Connect を使用してリモートホスト接続を確立するか、Accept を使用して受信接続を許可する必要があります。If you are using a connection-oriented protocol, you must either use Connect to establish a remote host connection, or use Accept to accept an incoming connection.

コネクションレスプロトコルを使用していて、複数の異なるホストにデータを送信することを計画している場合は、SendTo 方法を使用する必要があります。If you are using a connectionless protocol and plan to send data to several different hosts, you should use the SendTo method. SendTo メソッドを使用しない場合は、Sendを呼び出すたびに Connect を呼び出す必要があります。If you do not use the SendTo method, you will have to call Connect before each call to Send. Connectを使用して既定のリモートホストを確立した後でも、SendTo を使用できます。You can use SendTo even after you have established a default remote host with Connect. また、Connectへの別の呼び出しを行うことによって、Send を呼び出す前に、既定のリモートホストを変更することもできます。You can also change the default remote host prior to calling Send by making another call to Connect.

接続指向プロトコルを使用している場合は、Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、バッファー内のすべてのバイトが送信されるまで、Send はブロックされます。If you are using a connection-oriented protocol, Send will block until all of the bytes in the buffer are sent, unless a time-out was set by using Socket.SendTimeout. タイムアウト値を超えた場合、Send の呼び出しによって SocketExceptionがスローされます。If the time-out value was exceeded, the Send call will throw a SocketException. 非ブロッキングモードでは、バッファー内のバイト数よりも少ない場合でも、Send は正常に完了することがあります。In nonblocking mode, Send may complete successfully even if it sends less than the number of bytes in the buffer. アプリケーションは、送信されたバイト数を追跡し、アプリケーションがバッファー内のバイトを送信するまで操作を再試行する必要があります。It is your application's responsibility to keep track of the number of bytes sent and to retry the operation until the application sends the bytes in the buffer. また、送信したデータがネットワークに直ちに表示される保証もありません。There is also no guarantee that the data you send will appear on the network immediately. ネットワークの効率を向上させるために、基になるシステムは、大量の送信データが収集されるまで転送を遅らせます。To increase network efficiency, the underlying system may delay transmission until a significant amount of outgoing data is collected. Send メソッドが正常に完了すると、基になるシステムにネットワーク送信用のデータをバッファーするための余裕があることを意味します。A successful completion of the Send method means that the underlying system has had room to buffer your data for a network send.

注意

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.

注意

送信が正常に完了しても、データが正常に配信されたことは示されません。The successful completion of a send does not indicate that the data was successfully delivered. 転送されるデータを保持するためにトランスポートシステム内で使用できるバッファー領域がない場合、ソケットが非ブロッキングモードに設定されていない限り、send はブロックされます。If no buffer space is available within the transport system to hold the data to be transmitted, send will block unless the socket has been placed in nonblocking mode.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。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.

Send(ReadOnlySpan<Byte>)

接続された Socket にデータを送信します。Sends data to a connected Socket.

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

パラメーター

buffer
ReadOnlySpan<Byte>

送信されるデータを含むバイトのスパン。A span of bytes that contains the data to be sent.

戻り値

Socket に送信されたバイト数。The number of bytes sent to the Socket.

例外

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

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

注釈

Send は、Connect または Accept メソッドに指定されたリモートホストにデータを同期的に送信し、正常に送信されたバイト数を返します。Send synchronously sends data to the remote host specified in the Connect or Accept method and returns the number of bytes successfully sent. Send は、接続指向プロトコルとコネクションレスプロトコルの両方に使用できます。Send can be used for both connection-oriented and connectionless protocols.

このオーバーロードには、送信するデータを格納するバッファーが必要です。This overload requires a buffer that contains the data you want to send. SocketFlags 値の既定値は0です。バッファーオフセットの既定値は0で、既定で送信するバイト数はバッファーのサイズに設定されます。The SocketFlags value defaults to 0, the buffer offset defaults to 0, and the number of bytes to send defaults to the size of the buffer.

コネクションレスプロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、Send によって SocketExceptionがスローされます。If you're using a connectionless protocol, you must call Connect before calling this method, or Send will throw a SocketException. 接続指向プロトコルを使用している場合は、Connect を使用してリモートホスト接続を確立するか、Accept を使用して受信接続を受け入れる必要があります。If you're using a connection-oriented protocol, you must either use Connect to establish a remote host connection, or use Accept to accept an incoming connection.

コネクションレスプロトコルを使用していて、複数の異なるホストにデータを送信することを計画している場合は、SendTo メソッドを使用する必要があります。If you're using a connectionless protocol and plan to send data to several different hosts, you should use the SendTo method. SendTo メソッドを使用しない場合は、Sendを呼び出すたびに Connect を呼び出す必要があります。If you don't use the SendTo method, you'll have to call Connect before each call to Send. Connectを使用して既定のリモートホストを確立した後でも、SendTo を使用できます。You can use SendTo even after you have established a default remote host with Connect. また、Connectへの別の呼び出しを行うことによって、Send を呼び出す前に既定のリモートホストを変更することもできます。You can also change the default remote host before calling Send by making another call to Connect.

接続指向プロトコルを使用している場合は、Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、バッファー内のすべてのバイトが送信されるまで、Send はブロックされます。If you're using a connection-oriented protocol, Send will block until all of the bytes in the buffer are sent, unless a time-out was set by using Socket.SendTimeout. タイムアウト値を超えた場合、Send の呼び出しによって SocketExceptionがスローされます。If the time-out value was exceeded, the Send call will throw a SocketException. 非ブロッキングモードでは、バッファー内のバイト数よりも少ない場合でも、Send は正常に完了することがあります。In nonblocking mode, Send may complete successfully even if it sends less than the number of bytes in the buffer. アプリケーションは、送信されたバイト数を追跡し、アプリケーションがバッファー内のバイトを送信するまで操作を再試行する必要があります。It is your application's responsibility to keep track of the number of bytes sent and to retry the operation until the application sends the bytes in the buffer. また、送信したデータがネットワークに直ちに表示されるという保証もありません。There's also no guarantee that the data you send will appear on the network immediately. ネットワークの効率を向上させるために、基になるシステムは、大量の送信データが収集されるまで転送を遅らせます。To increase network efficiency, the underlying system may delay transmission until a significant amount of outgoing data is collected. Send メソッドが正常に完了すると、基になるシステムにネットワーク送信用のデータをバッファーするための余裕があることを意味します。A successful completion of the Send method means that the underlying system has had room to buffer your data for a network send.

注意

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.

重要

送信が正常に完了しても、データが正常に配信されたことは示されません。The successful completion of a send does not indicate that the data was successfully delivered. 転送されるデータを保持するためにトランスポートシステム内で使用できるバッファー領域がない場合、ソケットが非ブロッキングモードに設定されていない限り、send はブロックされます。If no buffer space is available within the transport system to hold the data to be transmitted, send will block unless the socket has been placed in nonblocking mode.

こちらもご覧ください

Send(Byte[], SocketFlags)

指定した SocketFlags を使用して、接続された Socket にデータを送信します。Sends data to a connected Socket using the specified SocketFlags.

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

パラメーター

buffer
Byte[]

送信されるデータを含む Byte 型の配列。An array of type Byte that contains the data to be sent.

socketFlags
SocketFlags

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

戻り値

Socket に送信されたバイト数。The number of bytes sent to the Socket.

例外

buffernullです。buffer is null.

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

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

次のコード例は、接続された Socketでデータを送信する方法を示しています。The following code example demonstrates sending 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

注釈

Send は、Connect または Accept メソッドで確立されたリモートホストにデータを同期的に送信し、正常に送信されたバイト数を返します。Send synchronously sends data to the remote host established in the Connect or Accept method and returns the number of bytes successfully sent. Send メソッドは、接続指向プロトコルとコネクションレスプロトコルの両方に使用できます。The Send method can be used for both connection-oriented and connectionless protocols.

このオーバーロードには、送信するデータを格納するバッファーと、SocketFlagsのビットごとの組み合わせが必要です。This overload requires a buffer that contains the data you want to send and a bitwise combination of SocketFlags. バッファーオフセットの既定値は0で、既定で送信されるバイト数はバッファーのサイズに設定されます。The buffer offset defaults to 0, and the number of bytes to send defaults to the size of the buffer. DontRoute フラグを socketflags パラメーター値として指定した場合、送信しようとしているデータはルーティングされません。If you specify the DontRoute flag as the socketflags parameter value, the data you are sending will not be routed.

コネクションレスプロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、Send によって SocketExceptionがスローされます。If you are using a connectionless protocol, you must call Connect before calling this method, or Send will throw a SocketException. 接続指向プロトコルを使用している場合は、Connect を使用してリモートホスト接続を確立するか、Accept を使用して受信接続を許可する必要があります。If you are using a connection-oriented protocol, you must either use Connect to establish a remote host connection, or use Accept to accept an incoming connection.

コネクションレスプロトコルを使用していて、複数の異なるホストにデータを送信することを計画している場合は、SendTo 方法を使用する必要があります。If you are using a connectionless protocol and plan to send data to several different hosts, you should use the SendTo method. SendTo メソッドを使用しない場合は、Sendを呼び出すたびに、Connect メソッドを呼び出す必要があります。If you do not use the SendTo method, you will have to call the Connect method before each call to Send. Connectを使用して既定のリモートホストを確立した後でも、SendTo を使用できます。You can use SendTo even after you have established a default remote host with Connect. また、Connectへの別の呼び出しを行うことによって、Send を呼び出す前に、既定のリモートホストを変更することもできます。You can also change the default remote host prior to calling Send by making another call to Connect.

接続指向プロトコルを使用している場合は、Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、バッファー内のすべてのバイトが送信されるまで、Send はブロックされます。If you are using a connection-oriented protocol, Send will block until all of the bytes in the buffer are sent, unless a time-out was set by using Socket.SendTimeout. タイムアウト値を超えた場合、Send の呼び出しによって SocketExceptionがスローされます。If the time-out value was exceeded, the Send call will throw a SocketException. 非ブロッキングモードでは、バッファー内のバイト数よりも少ない場合でも、Send は正常に完了することがあります。In nonblocking mode, Send may complete successfully even if it sends less than the number of bytes in the buffer. アプリケーションは、送信されたバイト数を追跡し、要求されたバイト数をアプリケーションが送信するまで操作を再試行する必要があります。It is your application's responsibility to keep track of the number of bytes sent and to retry the operation until the application sends the requested number of bytes. また、送信したデータがネットワークに直ちに表示される保証もありません。There is also no guarantee that the data you send will appear on the network immediately. ネットワークの効率を向上させるために、基になるシステムは、大量の送信データが収集されるまで転送を遅らせます。To increase network efficiency, the underlying system may delay transmission until a significant amount of outgoing data is collected. Send メソッドが正常に完了すると、基になるシステムにネットワーク送信用のデータをバッファーするための余裕があることを意味します。A successful completion of the Send method means that the underlying system has had room to buffer your data for a network send.

注意

バッファーのサイズが、基になるサービスプロバイダーの最大パケットサイズを超えていないことを確認する必要があります。You must ensure that the size of your buffer does not exceed the maximum packet size of the underlying service provider. この場合、データグラムは送信されず、Send によって SocketExceptionがスローされます。If it does, the datagram will not be sent and Send will throw a SocketException. 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.

注意

送信が正常に完了しても、データが正常に配信されたことは示されません。The successful completion of a send does not indicate that the data was successfully delivered. 転送されるデータを保持するためにトランスポートシステム内で使用できるバッファー領域がない場合、ソケットが非ブロッキングモードに設定されていない限り、send はブロックされます。If no buffer space is available within the transport system to hold the data to be transmitted, send will block unless the socket has been placed in nonblocking mode.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。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.

こちらもご覧ください

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

指定した SocketFlags を使用して、リスト内のバッファーのセットを接続された Socket に送信します。Sends the set of buffers in the list to a connected Socket, using the specified SocketFlags.

public:
 int Send(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public int Send (System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> int

パラメーター

buffers
IList<ArraySegment<Byte>>

送信するデータを格納する Byte 型の ArraySegment<T> のリスト。A list of ArraySegment<T>s of type Byte that contains the data to be sent.

socketFlags
SocketFlags

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

戻り値

Socket に送信されたバイト数。The number of bytes sent to the Socket.

例外

buffersnull です。buffers is null.

buffers が空です。buffers is empty.

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

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

注釈

このオーバーロードには、送信するデータを含むバッファーが少なくとも1つ必要です。This overload requires at least one buffer that contains the data you want to send. SocketFlags 値の既定値は0です。The SocketFlags value defaults to 0. DontRoute フラグを socketFlags パラメーターとして指定した場合、送信しようとしているデータはルーティングされません。If you specify the DontRoute flag as the socketFlags parameter, the data you are sending will not be routed.

コネクションレスプロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、Send によって SocketExceptionがスローされます。If you are using a connectionless protocol, you must call Connect before calling this method, or Send will throw a SocketException. 接続指向プロトコルを使用している場合は、Connect を使用してリモートホスト接続を確立するか、Accept を使用して受信接続を許可する必要があります。If you are using a connection-oriented protocol, you must either use Connect to establish a remote host connection, or use Accept to accept an incoming connection.

コネクションレスプロトコルを使用していて、複数の異なるホストにデータを送信することを計画している場合は、SendTo 方法を使用する必要があります。If you are using a connectionless protocol and plan to send data to several different hosts, you should use the SendTo method. SendTo メソッドを使用しない場合は、Sendを呼び出すたびに Connect を呼び出す必要があります。If you do not use the SendTo method, you will have to call Connect before each call to Send. Connectを使用して既定のリモートホストを確立した後でも、SendTo を使用できます。You can use SendTo even after you have established a default remote host with Connect. また、Connectへの別の呼び出しを行うことによって、Send を呼び出す前に、既定のリモートホストを変更することもできます。You can also change the default remote host prior to calling Send by making another call to Connect.

接続指向プロトコルを使用している場合は、Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、バッファー内のすべてのバイトが送信されるまで、Send はブロックされます。If you are using a connection-oriented protocol, Send will block until all of the bytes in the buffer are sent, unless a time-out was set by using Socket.SendTimeout. タイムアウト値を超えた場合、Send の呼び出しによって SocketExceptionがスローされます。If the time-out value was exceeded, the Send call will throw a SocketException. 非ブロッキングモードでは、Send がバッファー内のバイト数よりも少ない場合でも、正常に完了することがあります。In non-blocking mode, Send may complete successfully even if it sends less than the number of bytes in the buffer. アプリケーションは、送信されたバイト数を追跡し、アプリケーションがバッファー内のバイトを送信するまで操作を再試行する必要があります。It is your application's responsibility to keep track of the number of bytes sent and to retry the operation until the application sends the bytes in the buffer. また、送信したデータがネットワークに直ちに表示される保証もありません。There is also no guarantee that the data you send will appear on the network immediately. ネットワークの効率を向上させるために、基になるシステムは、大量の送信データが収集されるまで転送を遅らせます。To increase network efficiency, the underlying system may delay transmission until a significant amount of outgoing data is collected. Send メソッドが正常に完了すると、基になるシステムにネットワーク送信用のデータをバッファーするための余裕があることを意味します。A successful completion of the Send method means that the underlying system has had room to buffer your data for a network send.

注意

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.

注意

送信が正常に完了しても、データが正常に配信されたことは示されません。The successful completion of a send does not indicate that the data was successfully delivered. 転送されるデータを保持するためにトランスポートシステム内で使用できるバッファー領域がない場合、ソケットが非ブロッキングモードに設定されていない限り、send はブロックされます。If no buffer space is available within the transport system to hold the data to be transmitted, send will block unless the socket has been placed in nonblocking mode.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。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.

Send(ReadOnlySpan<Byte>, SocketFlags)

指定した SocketFlags を使用して、接続された Socket にデータを送信します。Sends data to a connected Socket using the specified SocketFlags.

public:
 int Send(ReadOnlySpan<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Send (ReadOnlySpan<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : ReadOnlySpan<byte> * System.Net.Sockets.SocketFlags -> int

パラメーター

buffer
ReadOnlySpan<Byte>

送信されるデータを含むバイトのスパン。A span of bytes that contains the data to be sent.

socketFlags
SocketFlags

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

戻り値

Socket に送信されたバイト数。The number of bytes sent to the Socket.

例外

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

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

こちらもご覧ください

Send(Byte[], Int32, SocketFlags)

指定した SocketFlags を使用し、指定したバイト数のデータを、接続された Socket に送信します。Sends the specified number of bytes of data to a connected Socket, using the specified SocketFlags.

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

パラメーター

buffer
Byte[]

送信されるデータを含む Byte 型の配列。An array of type Byte that contains the data to be sent.

size
Int32

送信するバイト数。The number of bytes to send.

socketFlags
SocketFlags

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

戻り値

Socket に送信されたバイト数。The number of bytes sent to the Socket.

例外

buffernullです。buffer is null.

size が 0 未満か、バッファーのサイズを超える値です。size is less than 0 or exceeds the size of the buffer.

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

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

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

次のコード例では、buffer で見つかったデータを送信し、SocketFlagsNone を指定します。The following code example sends the data found in buffer, and specifies None for SocketFlags.

// Displays sending with a connected socket
// using the overload that takes a buffer, message size, and socket flags.
int SendReceiveTest3( 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 i = server->Send( msg, msg->Length, SocketFlags::None );
      Console::WriteLine( "Sent {0} bytes.", i.ToString() );
      
      // Get reply from the server.
      int byteCount = server->Receive( bytes, 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, message size, and socket flags.
public static int SendReceiveTest3(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, msg.Length, SocketFlags.None);
        Console.WriteLine("Sent {0} bytes.", i);
        
        // Get reply from the server.
        int byteCount = server.Receive(bytes, 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, message size, and socket flags.
Public Shared Function SendReceiveTest3(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, msg.Length, SocketFlags.None)
        Console.WriteLine("Sent {0} bytes.", i)
        
        ' Get reply from the server.
        Dim byteCount As Integer = server.Receive(bytes, 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 'SendReceiveTest3

注釈

Send は、Connect または Accept メソッドで確立されたリモートホストにデータを同期的に送信し、正常に送信されたバイト数を返します。Send synchronously sends data to the remote host established in the Connect or Accept method and returns the number of bytes successfully sent. Send は、接続指向プロトコルとコネクションレスプロトコルの両方に使用できます。Send can be used for both connection-oriented and connectionless protocols.

このオーバーロードには、送信するデータを含むバッファー、送信するバイト数、および SocketFlagsのビットごとの組み合わせが必要です。This overload requires a buffer that contains the data you want to send, the number of bytes you want to send, and a bitwise combination of any SocketFlags. DontRoute フラグを socketflags パラメーターとして指定した場合、送信しているデータはルーティングされません。If you specify the DontRoute flag as the socketflags parameter, the data you're sending won't be routed.

コネクションレスプロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、Send によって SocketExceptionがスローされます。If you're using a connectionless protocol, you must call Connect before calling this method, or Send will throw a SocketException. 接続指向プロトコルを使用している場合は、Connect を使用してリモートホスト接続を確立するか、Accept を使用して受信接続を受け入れる必要があります。If you're using a connection-oriented protocol, you must either use Connect to establish a remote host connection, or use Accept to accept an incoming connection.

コネクションレスプロトコルを使用していて、複数の異なるホストにデータを送信することを計画している場合は、SendTo メソッドを使用する必要があります。If you're using a connectionless protocol and plan to send data to several different hosts, you should use the SendTo method. SendTo メソッドを使用しない場合は、Send メソッドを呼び出すたびに、Connect メソッドを呼び出す必要があります。If you don'tuse the SendTo method, you'll have to call the Connect method before each call to the Send method. Connectを使用して既定のリモートホストを確立した後でも、SendTo を使用できます。You can use SendTo even after you've established a default remote host with Connect. また、Connectへの別の呼び出しを行うことによって、Send を呼び出す前に既定のリモートホストを変更することもできます。You can also change the default remote host before calling Send by making another call to Connect.

接続指向プロトコルでは、Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、要求されたバイト数が送信されるまで、Send はブロックされます。With a connection-oriented protocol, Send will block until the requested number of bytes are sent, unless a time-out was set by using Socket.SendTimeout. タイムアウト値を超えた場合、Send の呼び出しによって SocketExceptionがスローされます。If the time-out value was exceeded, the Send call will throw a SocketException. 非ブロッキングモードでは、要求したバイト数よりも少ない時間で送信された場合でも、Send は正常に完了することがあります。In nonblocking mode, Send may complete successfully even if it sends less than the number of bytes you request. アプリケーションは、送信されたバイト数を追跡し、要求されたバイト数をアプリケーションが送信するまで操作を再試行する必要があります。It is your application's responsibility to keep track of the number of bytes sent and to retry the operation until the application sends the requested number of bytes. また、送信したデータがネットワークに直ちに表示される保証もありません。There is also no guarantee that the data you send will appear on the network immediately. ネットワークの効率を向上させるために、基になるシステムは、大量の送信データが収集されるまで転送を遅らせます。To increase network efficiency, the underlying system may delay transmission until a significant amount of outgoing data is collected. Send メソッドが正常に完了すると、基になるシステムにネットワーク送信用のデータをバッファーするための余裕があることを意味します。A successful completion of the Send method means that the underlying system has had room to buffer your data for a network send.

注意

サイズが、基になるサービスプロバイダーの最大パケットサイズを超えていないことを確認する必要があります。You must ensure that the size does not exceed the maximum packet size of the underlying service provider. この場合、データグラムは送信されず、SendSocketExceptionをスローします。If it does, the datagram won't be sent and Send will throw a SocketException. 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.

重要

送信が正常に完了しても、データが正常に配信されたことは示されません。The successful completion of a send does not indicate that the data was successfully delivered. 転送されるデータを保持するためにトランスポートシステム内で使用できるバッファー領域がない場合、ソケットが非ブロッキングモードに設定されていない限り、send はブロックされます。If no buffer space is available within the transport system to hold the data to be transmitted, send will block unless the socket has been placed in nonblocking mode.

こちらもご覧ください

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

重要

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

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

指定した SocketFlags を使用して、リスト内のバッファーのセットを接続された Socket に送信します。Sends the set of buffers in the list to a connected Socket, using the specified SocketFlags.

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

パラメーター

buffers
IList<ArraySegment<Byte>>

送信するデータを格納する Byte 型の ArraySegment<T> のリスト。A list of ArraySegment<T>s of type Byte that contains the data to be sent.

socketFlags
SocketFlags

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

errorCode
SocketError

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

戻り値

Socket に送信されたバイト数。The number of bytes sent to the Socket.

属性

例外

buffersnull です。buffers is null.

buffers が空です。buffers is empty.

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

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

注釈

このオーバーロードには、送信するデータを含むバッファーが少なくとも1つ必要です。This overload requires at least one buffer that contains the data you want to send. SocketFlags 値の既定値は0です。The SocketFlags value defaults to 0. DontRoute フラグを socketFlags パラメーターとして指定した場合、送信しようとしているデータはルーティングされません。If you specify the DontRoute flag as the socketFlags parameter, the data you are sending will not be routed.

コネクションレスプロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、Send によって SocketExceptionがスローされます。If you are using a connectionless protocol, you must call Connect before calling this method, or Send will throw a SocketException. 接続指向プロトコルを使用している場合は、Connect を使用してリモートホスト接続を確立するか、Accept を使用して受信接続を許可する必要があります。If you are using a connection-oriented protocol, you must either use Connect to establish a remote host connection, or use Accept to accept an incoming connection.

コネクションレスプロトコルを使用していて、複数の異なるホストにデータを送信することを計画している場合は、SendTo 方法を使用する必要があります。If you are using a connectionless protocol and plan to send data to several different hosts, you should use the SendTo method. SendTo メソッドを使用しない場合は、Sendを呼び出すたびに Connect を呼び出す必要があります。If you do not use the SendTo method, you will have to call Connect before each call to Send. Connectを使用して既定のリモートホストを確立した後でも、SendTo を使用できます。You can use SendTo even after you have established a default remote host with Connect. また、Connectへの別の呼び出しを行うことによって、Send を呼び出す前に、既定のリモートホストを変更することもできます。You can also change the default remote host prior to calling Send by making another call to Connect.

接続指向プロトコルを使用している場合は、Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、バッファー内のすべてのバイトが送信されるまで、Send はブロックされます。If you are using a connection-oriented protocol, Send will block until all of the bytes in the buffer are sent, unless a time-out was set by using Socket.SendTimeout. タイムアウト値を超えた場合、Send の呼び出しによって SocketExceptionがスローされます。If the time-out value was exceeded, the Send call will throw a SocketException. 非ブロッキングモードでは、Send がバッファー内のバイト数よりも少ない場合でも、正常に完了することがあります。In non-blocking mode, Send may complete successfully even if it sends less than the number of bytes in the buffer. アプリケーションは、送信されたバイト数を追跡し、アプリケーションがバッファー内のバイトを送信するまで操作を再試行する必要があります。It is your application's responsibility to keep track of the number of bytes sent and to retry the operation until the application sends the bytes in the buffer. また、送信したデータがネットワークに直ちに表示される保証もありません。There is also no guarantee that the data you send will appear on the network immediately. ネットワークの効率を向上させるために、基になるシステムは、大量の送信データが収集されるまで転送を遅らせます。To increase network efficiency, the underlying system may delay transmission until a significant amount of outgoing data is collected. Send メソッドが正常に完了すると、基になるシステムにネットワーク送信用のデータをバッファーするための余裕があることを意味します。A successful completion of the Send method means that the underlying system has had room to buffer your data for a network send.

注意

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.

注意

送信が正常に完了しても、データが正常に配信されたことは示されません。The successful completion of a send does not indicate that the data was successfully delivered. 転送されるデータを保持するためにトランスポートシステム内で使用できるバッファー領域がない場合、ソケットが非ブロッキングモードに設定されていない限り、send はブロックされます。If no buffer space is available within the transport system to hold the data to be transmitted, send will block unless the socket has been placed in nonblocking mode.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。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.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

指定した SocketFlags を使用して、接続された Socket にデータを送信します。Sends data to a connected Socket using the specified SocketFlags.

public:
 int Send(ReadOnlySpan<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Send (ReadOnlySpan<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Send : ReadOnlySpan<byte> * System.Net.Sockets.SocketFlags * SocketError -> int

パラメーター

buffer
ReadOnlySpan<Byte>

送信されるデータを含むバイトのスパン。A span of bytes that contains the data to be sent.

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.

戻り値

Socket に送信されたバイト数。The number of bytes sent to the Socket.

例外

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

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

注釈

Send は、Connect または Accept メソッドに指定されたリモートホストにデータを同期的に送信し、正常に送信されたバイト数を返します。Send synchronously sends data to the remote host specified in the Connect or Accept method and returns the number of bytes successfully sent. Send は、接続指向プロトコルとコネクションレスプロトコルの両方に使用できます。Send can be used for both connection-oriented and connectionless protocols.

このオーバーロードには、送信するデータを格納するバッファーが必要です。This overload requires a buffer that contains the data you want to send. SocketFlags 値の既定値は0です。バッファーオフセットの既定値は0で、既定で送信するバイト数はバッファーのサイズに設定されます。The SocketFlags value defaults to 0, the buffer offset defaults to 0, and the number of bytes to send defaults to the size of the buffer.

コネクションレスプロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、Send によって SocketExceptionがスローされます。If you're using a connectionless protocol, you must call Connect before calling this method, or Send will throw a SocketException. 接続指向プロトコルを使用している場合は、Connect を使用してリモートホスト接続を確立するか、Accept を使用して受信接続を受け入れる必要があります。If you're using a connection-oriented protocol, you must either use Connect to establish a remote host connection, or use Accept to accept an incoming connection.

コネクションレスプロトコルを使用していて、複数の異なるホストにデータを送信することを計画している場合は、SendTo メソッドを使用する必要があります。If you're using a connectionless protocol and plan to send data to several different hosts, you should use the SendTo method. SendTo メソッドを使用しない場合は、Sendを呼び出すたびに Connect を呼び出す必要があります。If you don't use the SendTo method, you'll have to call Connect before each call to Send. Connectを使用して既定のリモートホストを確立した後でも、SendTo を使用できます。You can use SendTo even after you've established a default remote host with Connect. また、Connectへの別の呼び出しを行うことによって、Send を呼び出す前に既定のリモートホストを変更することもできます。You can also change the default remote host before calling Send by making another call to Connect.

接続指向プロトコルを使用している場合は、Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、バッファー内のすべてのバイトが送信されるまで、Send はブロックされます。If you're using a connection-oriented protocol, Send will block until all of the bytes in the buffer are sent, unless a time-out was set by using Socket.SendTimeout. タイムアウト値を超えた場合、Send の呼び出しによって SocketExceptionがスローされます。If the time-out value was exceeded, the Send call will throw a SocketException. 非ブロッキングモードでは、バッファー内のバイト数よりも少ない場合でも、Send は正常に完了することがあります。In nonblocking mode, Send may complete successfully even if it sends less than the number of bytes in the buffer. アプリケーションは、送信されたバイト数を追跡し、アプリケーションがバッファー内のバイトを送信するまで操作を再試行する必要があります。It is your application's responsibility to keep track of the number of bytes sent and to retry the operation until the application sends the bytes in the buffer. また、送信したデータがネットワークに直ちに表示されるという保証もありません。There's also no guarantee that the data you send will appear on the network immediately. ネットワークの効率を向上させるために、基になるシステムは、大量の送信データが収集されるまで転送を遅らせます。To increase network efficiency, the underlying system may delay transmission until a significant amount of outgoing data is collected. Send メソッドが正常に完了すると、基になるシステムにネットワーク送信用のデータをバッファーするための余裕があることを意味します。A successful completion of the Send method means that the underlying system has had room to buffer your data for a network send.

注意

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've 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.

重要

送信が正常に完了しても、データが正常に配信されたことは示されません。The successful completion of a send does not indicate that the data was successfully delivered. 転送されるデータを保持するためにトランスポートシステム内で使用できるバッファー領域がない場合、ソケットが非ブロッキングモードに設定されていない限り、send はブロックされます。If no buffer space is available within the transport system to hold the data to be transmitted, send will block unless the socket has been placed in nonblocking mode.

こちらもご覧ください

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

指定したオフセットから開始し、指定した SocketFlags を使用して、指定したバイト数のデータを接続された Socket に送信します。Sends the specified number of bytes of data to a connected Socket, starting at the specified offset, and using the specified SocketFlags.

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

パラメーター

buffer
Byte[]

送信されるデータを含む Byte 型の配列。An array of type Byte that contains the data to be sent.

offset
Int32

データの送信を開始する、データ バッファー内の位置。The position in the data buffer at which to begin sending data.

size
Int32

送信するバイト数。The number of bytes to send.

socketFlags
SocketFlags

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

戻り値

Socket に送信されたバイト数。The number of bytes sent to the Socket.

例外

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

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

次のコード例では、接続されている Socketにデータを送信するためのデータバッファー、オフセット、サイズ、および SocketFlags を指定します。The following code example specifies the data buffer, an offset, a size, and SocketFlags for sending data to 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

注釈

Send は、Connect または Accept メソッドに指定されたリモートホストにデータを同期的に送信し、正常に送信されたバイト数を返します。Send synchronously sends data to the remote host specified in the Connect or Accept method and returns the number of bytes successfully sent. Send は、接続指向プロトコルとコネクションレスプロトコルの両方に使用できます。Send can be used for both connection-oriented and connectionless protocols.

このオーバーロードでは、DontRoute フラグを socketflags パラメーターとして指定した場合、送信するデータはルーティングされません。In this overload, if you specify the DontRoute flag as the socketflags parameter, the data you are sending will not be routed.

コネクションレスプロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、SendSocketExceptionをスローします。If you are using a connectionless protocol, you must call Connect before calling this method or Send will throw a SocketException. 接続指向プロトコルを使用している場合は、Connect を使用してリモートホスト接続を確立するか、Accept を使用して受信接続を許可する必要があります。If you are using a connection-oriented protocol, you must either use Connect to establish a remote host connection, or use Accept to accept an incoming connection.

コネクションレスプロトコルを使用していて、複数の異なるホストにデータを送信することを計画している場合は、SendToを使用する必要があります。If you are using a connectionless protocol and plan to send data to several different hosts, you should use SendTo. SendToを使用しない場合は、Sendを呼び出すたびに Connect を呼び出す必要があります。If you do not use SendTo, you will have to call Connect before each call to Send. Connectを使用して既定のリモートホストを確立した後でも、SendTo を使用できます。It is okay to use SendTo even after you have established a default remote host with Connect. また、Connectへの別の呼び出しを行うことによって、Send を呼び出す前に、既定のリモートホストを変更することもできます。You can also change the default remote host prior to calling Send by making another call to Connect.

また、サイズが基になるサービスプロバイダーの最大パケットサイズを超えていないことを確認する必要もあります。You must also be sure that the size does not exceed the maximum packet size of the underlying service provider. この場合、データグラムは送信されず、Send によって SocketExceptionがスローされます。If it does, the datagram will not be sent and Send will throw a SocketException.

接続指向プロトコルを使用している場合は、Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、要求されたバイト数が送信されるまで、Send はブロックされます。If you are using a connection-oriented protocol, Send will block until the requested number of bytes are sent, unless a time-out was set by using Socket.SendTimeout. タイムアウト値を超えた場合、Send の呼び出しによって SocketExceptionがスローされます。If the time-out value was exceeded, the Send call will throw a SocketException. 非ブロッキングモードでは、要求したバイト数よりも少ない時間で送信された場合でも、Send は正常に完了することがあります。In nonblocking mode, Send may complete successfully even if it sends less than the number of bytes you request. アプリケーションは、送信されたバイト数を追跡し、要求されたバイト数をアプリケーションが送信するまで操作を再試行する必要があります。It is your application's responsibility to keep track of the number of bytes sent and to retry the operation until the application sends the requested number of bytes. また、送信したデータがネットワークに直ちに表示される保証もありません。There is also no guarantee that the data you send will appear on the network immediately. ネットワークの効率を向上させるために、基になるシステムは、大量の送信データが収集されるまで転送を遅らせます。To increase network efficiency, the underlying system may delay transmission until a significant amount of outgoing data is collected. Send メソッドが正常に完了すると、基になるシステムにネットワーク送信用のデータをバッファーするための余裕があることを意味します。A successful completion of the Send method means that the underlying system has had room to buffer your data for a network send.

注意

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.

注意

送信が正常に完了しても、データが正常に配信されたことは示されません。The successful completion of a send does not indicate that the data was successfully delivered. 転送されるデータを保持するためにトランスポートシステム内で使用できるバッファー領域がない場合、ソケットが非ブロッキングモードに設定されていない限り、send はブロックされます。If no buffer space is available within the transport system to hold the data to be transmitted, send will block unless the socket has been placed in nonblocking mode.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。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.

こちらもご覧ください

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

指定したオフセットから開始し、指定した SocketFlags を使用して、指定したバイト数のデータを接続された Socket に送信します。Sends the specified number of bytes of data to a connected Socket, starting at the specified offset, and using the specified SocketFlags

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

パラメーター

buffer
Byte[]

送信されるデータを含む Byte 型の配列。An array of type Byte that contains the data to be sent.

offset
Int32

データの送信を開始する、データ バッファー内の位置。The position in the data buffer at which to begin sending data.

size
Int32

送信するバイト数。The number of bytes to send.

socketFlags
SocketFlags

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

errorCode
SocketError

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

戻り値

Socket に送信されたバイト数。The number of bytes sent to the Socket.

例外

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

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

次のコード例では、接続されている Socketにデータを送信するためのデータバッファー、オフセット、サイズ、および SocketFlags を指定します。The following code example specifies the data buffer, an offset, a size, and SocketFlags for sending data to 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

注釈

Send は、Connect または Accept メソッドに指定されたリモートホストにデータを同期的に送信し、正常に送信されたバイト数を返します。Send synchronously sends data to the remote host specified in the Connect or Accept method and returns the number of bytes successfully sent. Send は、接続指向プロトコルとコネクションレスプロトコルの両方に使用できます。Send can be used for both connection-oriented and connectionless protocols.

このオーバーロードでは、DontRoute フラグを socketflags パラメーターとして指定した場合、送信するデータはルーティングされません。In this overload, if you specify the DontRoute flag as the socketflags parameter, the data you are sending will not be routed.

コネクションレスプロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、SendSocketExceptionをスローします。If you are using a connectionless protocol, you must call Connect before calling this method or Send will throw a SocketException. 接続指向プロトコルを使用している場合は、Connect を使用してリモートホスト接続を確立するか、Accept を使用して受信接続を許可する必要があります。If you are using a connection-oriented protocol, you must either use Connect to establish a remote host connection, or use Accept to accept an incoming connection.

コネクションレスプロトコルを使用していて、複数の異なるホストにデータを送信することを計画している場合は、SendToを使用する必要があります。If you are using a connectionless protocol and plan to send data to several different hosts, you should use SendTo. SendToを使用しない場合は、Sendを呼び出すたびに Connect を呼び出す必要があります。If you do not use SendTo, you will have to call Connect before each call to Send. Connectを使用して既定のリモートホストを確立した後でも、SendTo を使用できます。It is okay to use SendTo even after you have established a default remote host with Connect. また、Connectへの別の呼び出しを行うことによって、Send を呼び出す前に、既定のリモートホストを変更することもできます。You can also change the default remote host prior to calling Send by making another call to Connect.

また、サイズが基になるサービスプロバイダーの最大パケットサイズを超えていないことを確認する必要もあります。You must also be sure that the size does not exceed the maximum packet size of the underlying service provider. この場合、データグラムは送信されず、Send によって SocketExceptionがスローされます。If it does, the datagram will not be sent and Send will throw a SocketException.

接続指向プロトコルを使用している場合は、Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、要求されたバイト数が送信されるまで、Send はブロックされます。If you are using a connection-oriented protocol, Send will block until the requested number of bytes are sent, unless a time-out was set by using Socket.SendTimeout. タイムアウト値を超えた場合、Send の呼び出しによって SocketExceptionがスローされます。If the time-out value was exceeded, the Send call will throw a SocketException. 非ブロッキングモードでは、要求したバイト数よりも少ない時間で送信された場合でも、Send は正常に完了することがあります。In nonblocking mode, Send may complete successfully even if it sends less than the number of bytes you request. アプリケーションは、送信されたバイト数を追跡し、要求されたバイト数をアプリケーションが送信するまで操作を再試行する必要があります。It is your application's responsibility to keep track of the number of bytes sent and to retry the operation until the application sends the requested number of bytes. また、送信したデータがネットワークに直ちに表示される保証もありません。There is also no guarantee that the data you send will appear on the network immediately. ネットワークの効率を向上させるために、基になるシステムは、大量の送信データが収集されるまで転送を遅らせます。To increase network efficiency, the underlying system may delay transmission until a significant amount of outgoing data is collected. Send メソッドが正常に完了すると、基になるシステムにネットワーク送信用のデータをバッファーするための余裕があることを意味します。A successful completion of the Send method means that the underlying system has had room to buffer your data for a network send.

注意

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.

注意

送信が正常に完了しても、データが正常に配信されたことは示されません。The successful completion of a send does not indicate that the data was successfully delivered. 転送されるデータを保持するためにトランスポートシステム内で使用できるバッファー領域がない場合、ソケットが非ブロッキングモードに設定されていない限り、send はブロックされます。If no buffer space is available within the transport system to hold the data to be transmitted, send will block unless the socket has been placed in nonblocking mode.

注意

このメンバーは、アプリケーションでネットワーク トレースが有効にされている場合にトレース情報を出力します。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.

こちらもご覧ください

適用対象