Language

Socket.Send メソッド

定義

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

オーバーロード

名前 説明
Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

指定したSocketを使用して、接続されているSocketFlagsにデータを送信します。

Send(ReadOnlySpan<Byte>)

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

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

指定したオフセットから始まり、指定したSocketを使用して、指定したバイト数のデータを接続されたSocketFlagsに送信します。

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

指定したSocketを使用して、リスト内のバッファーのセットを接続されたSocketFlagsに送信します。

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

指定したオフセットから始まり、指定したSocketを使用して、指定したバイト数のデータを接続されたSocketFlagsに送信します。

Send(Byte[], Int32, SocketFlags)

指定したSocketを使用して、接続されているSocketFlagsに、指定したバイト数のデータを送信します。

Send(IList<ArraySegment<Byte>>)

リスト内のバッファーのセットを接続された Socketに送信します。

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

指定したSocketを使用して、リスト内のバッファーのセットを接続されたSocketFlagsに送信します。

Send(Byte[], SocketFlags)

指定したSocketを使用して、接続されているSocketFlagsにデータを送信します。

Send(ReadOnlySpan<Byte>, SocketFlags)

指定したSocketを使用して、接続されているSocketFlagsにデータを送信します。

Send(Byte[])

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

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

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

指定したSocketを使用して、接続されている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
Public Function Send (buffer As ReadOnlySpan(Of Byte), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer

パラメーター

buffer
ReadOnlySpan<Byte>

送信するデータを含むバイトのスパン。

socketFlags
SocketFlags

送受信動作を指定する列挙値のビットごとの組み合わせ。

errorCode
SocketError

このメソッドが戻るときに、ソケットのエラー コードを定義する列挙値の 1 つを格納します。

返品

Socketに送信されたバイト数。

例外

ソケットにアクセスしようとしたときにエラーが発生しました。

Socketが閉じられました。

注釈

Send は、 Connect メソッドまたは Accept メソッドで指定されたリモート ホストにデータを同期的に送信し、正常に送信されたバイト数を返します。 Send は、接続指向プロトコルとコネクションレス プロトコルの両方に使用できます。

このオーバーロードには、送信するデータを含むバッファーが必要です。 SocketFlags値の既定値は 0、バッファー オフセットの既定値は 0、送信するバイト数は既定でバッファーのサイズになります。

コネクションレス プロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、 Send は SocketExceptionをスローします。 接続指向プロトコルを使用している場合は、 Connect を使用してリモート ホスト接続を確立するか、 Accept を使用して受信接続を受け入れる必要があります。

コネクションレス プロトコルを使用していて、複数の異なるホストにデータを送信する予定がある場合は、 SendTo メソッドを使用する必要があります。 SendTo メソッドを使用しない場合は、Connectを呼び出すたびに、Sendを呼び出す必要があります。 SendToで既定のリモート ホストを確立した後でも、Connectを使用できます。 Sendに別の呼び出しを行うことで、Connectを呼び出す前に既定のリモート ホストを変更することもできます。

接続指向プロトコルを使用している場合、 Send は、 Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、バッファー内のすべてのバイトが送信されるまでブロックされます。 タイムアウト値を超えた場合、 Send 呼び出しは SocketExceptionをスローします。 非ブロッキング モードでは、バッファー内のバイト数より小さい場合でも、 Send が正常に完了する可能性があります。 送信されたバイト数を追跡し、アプリケーションがバッファー内のバイトを送信するまで操作を再試行するのは、アプリケーションの責任です。 送信したデータがネットワークにすぐに表示される保証もありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる可能性があります。 Send メソッドが正常に完了すると、基になるシステムに、ネットワーク送信用にデータをバッファーする領域があることを意味します。

Note

SocketExceptionを受け取った場合は、SocketException.ErrorCode プロパティを使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 の API エラー コード のドキュメントを参照してください。

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

Important

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

こちらもご覧ください

適用対象

Send(ReadOnlySpan<Byte>)

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

接続されている 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>

送信するデータを含むバイトのスパン。

返品

Socketに送信されたバイト数。

例外

ソケットにアクセスしようとしたときにエラーが発生しました。

Socketが閉じられました。

注釈

Send は、 Connect メソッドまたは Accept メソッドで指定されたリモート ホストにデータを同期的に送信し、正常に送信されたバイト数を返します。 Send は、接続指向プロトコルとコネクションレス プロトコルの両方に使用できます。

このオーバーロードには、送信するデータを含むバッファーが必要です。 SocketFlags値の既定値は 0、バッファー オフセットの既定値は 0、送信するバイト数は既定でバッファーのサイズになります。

コネクションレス プロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、 Send は SocketExceptionをスローします。 接続指向プロトコルを使用している場合は、 Connect を使用してリモート ホスト接続を確立するか、 Accept を使用して受信接続を受け入れる必要があります。

コネクションレス プロトコルを使用していて、複数の異なるホストにデータを送信する予定がある場合は、 SendTo メソッドを使用する必要があります。 SendTo メソッドを使用しない場合は、Connectを呼び出すたびに、Sendを呼び出す必要があります。 SendToで既定のリモート ホストを確立した後でも、Connectを使用できます。 Sendに別の呼び出しを行うことで、Connectを呼び出す前に既定のリモート ホストを変更することもできます。

接続指向プロトコルを使用している場合、 Send は、 Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、バッファー内のすべてのバイトが送信されるまでブロックされます。 タイムアウト値を超えた場合、 Send 呼び出しは SocketExceptionをスローします。 非ブロッキング モードでは、バッファー内のバイト数より小さい場合でも、 Send が正常に完了する可能性があります。 送信されたバイト数を追跡し、アプリケーションがバッファー内のバイトを送信するまで操作を再試行するのは、アプリケーションの責任です。 送信したデータがネットワークにすぐに表示される保証もありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる可能性があります。 Send メソッドが正常に完了すると、基になるシステムに、ネットワーク送信用にデータをバッファーする領域があることを意味します。

Note

SocketExceptionを受け取った場合は、SocketException.ErrorCode プロパティを使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 の API エラー コード のドキュメントを参照してください。

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

Important

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

こちらもご覧ください

適用対象

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

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

指定したオフセットから始まり、指定したSocketを使用して、指定したバイト数のデータを接続された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
Public Function Send (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer

パラメーター

buffer
Byte[]

送信するデータを含む Byte 型の配列。

offset
Int32

データの送信を開始するデータ バッファー内の位置。

size
Int32

送信するバイト数。

socketFlags
SocketFlags

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

errorCode
SocketError

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

返品

Socketに送信されたバイト数。

例外

buffer は nullです。

offset が 0 未満です。

-又は-

offset が bufferの長さを超えています。

-又は-

size が 0 未満です。

-又は-

size は、 buffer の長さから offset パラメーターの値を引いた値より大きい値です。

socketFlags が有効な値の組み合わせではありません。

-又は-

Socketへのアクセス中にオペレーティング システム エラーが発生します。

Socketが閉じられました。

例

次のコード例では、接続されたSocketFlagsにデータを送信するためのデータ バッファー、オフセット、サイズ、およびSocketを指定します。

// 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, bytes.Length, SocketFlags.None);

        if (byteCount > 0)
            Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
    }
    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 は、接続指向プロトコルとコネクションレス プロトコルの両方に使用できます。

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

コネクションレス プロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、 Send は SocketExceptionをスローします。 接続指向プロトコルを使用している場合は、 Connect を使用してリモート ホスト接続を確立するか、 Accept を使用して受信接続を受け入れる必要があります。

コネクションレス プロトコルを使用していて、複数の異なるホストにデータを送信する予定がある場合は、 SendToを使用する必要があります。 SendToを使用しない場合は、各呼び出しの前にConnectを呼び出Send必要があります。 SendToで既定のリモート ホストを確立した後でも、Connectを使用しても問題ありません。 Sendを呼び出す前に、Connectの別の呼び出しを行うことで、既定のリモート ホストを変更することもできます。

また、サイズが基になるサービス プロバイダーの最大パケット サイズを超えないようにする必要があります。 送信された場合、データグラムは送信されず、 Send は SocketExceptionをスローします。

接続指向プロトコルを使用している場合、 Send は、 Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、要求されたバイト数が送信されるまでブロックされます。 タイムアウト値を超えた場合、 Send 呼び出しは SocketExceptionをスローします。 非ブロッキング モードでは、 Send は、要求したバイト数未満の送信でも正常に完了する可能性があります。 送信されたバイト数を追跡し、アプリケーションが要求されたバイト数を送信するまで操作を再試行するのは、アプリケーションの責任です。 また、送信したデータがネットワークにすぐに表示される保証もありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる可能性があります。 Send メソッドが正常に完了すると、基になるシステムに、ネットワーク送信用にデータをバッファーする領域があることを意味します。

Note

SocketExceptionを受け取った場合は、SocketException.ErrorCode プロパティを使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 の API エラー コード のドキュメントを参照してください。

Note

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

Note

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

こちらもご覧ください

適用対象

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

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

指定したSocketを使用して、リスト内のバッファーのセットを接続された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);
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
Public Function Send (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer

パラメーター

buffers
IList<ArraySegment<Byte>>

送信するデータを含むArraySegment<T>型のByteの一覧。

socketFlags
SocketFlags

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

errorCode
SocketError

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

返品

Socketに送信されたバイト数。

例外

buffers は nullです。

buffers が空です。

ソケットにアクセスしようとしたときにエラーが発生しました。

Socketが閉じられました。

注釈

このオーバーロードには、送信するデータを含むバッファーが少なくとも 1 つ必要です。 SocketFlags値の既定値は 0 です。 DontRoute フラグを socketFlags パラメーターとして指定した場合、送信するデータはルーティングされません。

コネクションレス プロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、 Send は SocketExceptionをスローします。 接続指向プロトコルを使用している場合は、 Connect を使用してリモート ホスト接続を確立するか、 Accept を使用して受信接続を受け入れる必要があります。

コネクションレス プロトコルを使用していて、複数の異なるホストにデータを送信する予定がある場合は、 SendTo メソッドを使用する必要があります。 SendTo メソッドを使用しない場合は、Connectの各呼び出しの前にSendを呼び出す必要があります。 SendToで既定のリモート ホストを確立した後でも、Connectを使用できます。 Sendを呼び出す前に、Connectの別の呼び出しを行うことで、既定のリモート ホストを変更することもできます。

接続指向プロトコルを使用している場合、 Send は、 Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、バッファー内のすべてのバイトが送信されるまでブロックされます。 タイムアウト値を超えた場合、 Send 呼び出しは SocketExceptionをスローします。 非ブロッキング モードでは、バッファー内のバイト数より小さい場合でも、 Send が正常に完了する可能性があります。 送信されたバイト数を追跡し、アプリケーションがバッファー内のバイトを送信するまで操作を再試行するのは、アプリケーションの責任です。 また、送信したデータがネットワークにすぐに表示される保証もありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる可能性があります。 Send メソッドが正常に完了すると、基になるシステムに、ネットワーク送信用にデータをバッファーする領域があることを意味します。

Note

SocketExceptionを受け取った場合は、SocketException.ErrorCode プロパティを使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 の API エラー コード のドキュメントを参照してください。

Note

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

Note

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

適用対象

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

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

指定したオフセットから始まり、指定したSocketを使用して、指定したバイト数のデータを接続された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
Public Function Send (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags) As Integer

パラメーター

buffer
Byte[]

送信するデータを含む Byte 型の配列。

offset
Int32

データの送信を開始するデータ バッファー内の位置。

size
Int32

送信するバイト数。

socketFlags
SocketFlags

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

返品

Socketに送信されたバイト数。

例外

buffer は nullです。

offset が 0 未満です。

-又は-

offset が bufferの長さを超えています。

-又は-

size が 0 未満です。

-又は-

size は、 buffer の長さから offset パラメーターの値を引いた値より大きい値です。

socketFlags が有効な値の組み合わせではありません。

-又は-

Socketへのアクセス中にオペレーティング システム エラーが発生します。

Socketが閉じられました。

例

次のコード例では、接続されたSocketFlagsにデータを送信するためのデータ バッファー、オフセット、サイズ、およびSocketを指定します。

// 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, bytes.Length, SocketFlags.None);

        if (byteCount > 0)
            Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
    }
    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 は、接続指向プロトコルとコネクションレス プロトコルの両方に使用できます。

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

コネクションレス プロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、 Send は SocketExceptionをスローします。 接続指向プロトコルを使用している場合は、 Connect を使用してリモート ホスト接続を確立するか、 Accept を使用して受信接続を受け入れる必要があります。

コネクションレス プロトコルを使用していて、複数の異なるホストにデータを送信する予定がある場合は、 SendToを使用する必要があります。 SendToを使用しない場合は、各呼び出しの前にConnectを呼び出Send必要があります。 SendToで既定のリモート ホストを確立した後でも、Connectを使用しても問題ありません。 Sendを呼び出す前に、Connectの別の呼び出しを行うことで、既定のリモート ホストを変更することもできます。

また、サイズが基になるサービス プロバイダーの最大パケット サイズを超えないようにする必要があります。 送信された場合、データグラムは送信されず、 Send は SocketExceptionをスローします。

接続指向プロトコルを使用している場合、 Send は、 Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、要求されたバイト数が送信されるまでブロックされます。 タイムアウト値を超えた場合、 Send 呼び出しは SocketExceptionをスローします。 非ブロッキング モードでは、 Send は、要求したバイト数未満の送信でも正常に完了する可能性があります。 送信されたバイト数を追跡し、アプリケーションが要求されたバイト数を送信するまで操作を再試行するのは、アプリケーションの責任です。 また、送信したデータがネットワークにすぐに表示される保証もありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる可能性があります。 Send メソッドが正常に完了すると、基になるシステムに、ネットワーク送信用にデータをバッファーする領域があることを意味します。

Note

SocketExceptionを受け取った場合は、SocketException.ErrorCode プロパティを使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 の API エラー コード のドキュメントを参照してください。

Note

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

Note

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

こちらもご覧ください

適用対象

Send(Byte[], Int32, SocketFlags)

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

指定したSocketを使用して、接続されている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
Public Function Send (buffer As Byte(), size As Integer, socketFlags As SocketFlags) As Integer

パラメーター

buffer
Byte[]

送信するデータを含む Byte 型の配列。

size
Int32

送信するバイト数。

socketFlags
SocketFlags

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

返品

Socketに送信されたバイト数。

例外

buffer は nullです。

size が 0 未満であるか、バッファーのサイズを超えています。

socketFlags が有効な値の組み合わせではありません。

-又は-

ソケットへのアクセス中にオペレーティング システム エラーが発生します。

Socketが閉じられました。

例

次のコード例では、バッファー内のデータを送信し、NoneのSocketFlagsを指定します。

// 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, bytes.Length, SocketFlags.None);
        if (byteCount > 0)
            Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
    }
    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 は、接続指向プロトコルとコネクションレス プロトコルの両方に使用できます。

このオーバーロードには、送信するデータ、送信するバイト数、および任意の SocketFlagsのビットごとの組み合わせを含むバッファーが必要です。 DontRoute パラメーターとして socketflags フラグを指定した場合、送信するデータはルーティングされません。

コネクションレス プロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、 Send は SocketExceptionをスローします。 接続指向プロトコルを使用している場合は、 Connect を使用してリモート ホスト接続を確立するか、 Accept を使用して受信接続を受け入れる必要があります。

コネクションレス プロトコルを使用していて、複数の異なるホストにデータを送信する予定がある場合は、 SendTo メソッドを使用する必要があります。 SendTo メソッドを使用しない場合は、Connect メソッドを呼び出す前に、Send メソッドを呼び出す必要があります。 SendToで既定のリモート ホストを確立した後でも、Connectを使用できます。 Sendに別の呼び出しを行うことで、Connectを呼び出す前に既定のリモート ホストを変更することもできます。

接続指向プロトコルでは、 Send は、 Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、要求されたバイト数が送信されるまでブロックされます。 タイムアウト値を超えた場合、 Send 呼び出しは SocketExceptionをスローします。 非ブロッキング モードでは、 Send は、要求したバイト数未満の送信でも正常に完了する可能性があります。 送信されたバイト数を追跡し、アプリケーションが要求されたバイト数を送信するまで操作を再試行するのは、アプリケーションの責任です。 また、送信したデータがネットワークにすぐに表示される保証もありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる可能性があります。 Send メソッドが正常に完了すると、基になるシステムに、ネットワーク送信用にデータをバッファーする領域があることを意味します。

Note

サイズが基になるサービス プロバイダーの最大パケット サイズを超えないようにする必要があります。 送信された場合、データグラムは送信されません。 Send は SocketExceptionをスローします。 SocketExceptionを受け取った場合は、SocketException.ErrorCode プロパティを使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 の API エラー コード のドキュメントを参照してください。

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

Important

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

こちらもご覧ください

適用対象

Send(IList<ArraySegment<Byte>>)

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

リスト内のバッファーのセットを接続された 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>>

送信するデータを含むArraySegment<T>型のByteの一覧。

返品

Socketに送信されたバイト数。

例外

buffers は nullです。

buffers が空です。

ソケットにアクセスしようとしたときにエラーが発生しました。 以下の「解説」セクションを参照してください。

Socketが閉じられました。

注釈

Send は、接続指向プロトコルとコネクションレス プロトコルの両方に使用できます。

このオーバーロードには、送信するデータを含むバッファーが少なくとも 1 つ必要です。

コネクションレス プロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、 Send は SocketExceptionをスローします。 接続指向プロトコルを使用している場合は、 Connect を使用してリモート ホスト接続を確立するか、 Accept を使用して受信接続を受け入れる必要があります。

コネクションレス プロトコルを使用していて、複数の異なるホストにデータを送信する予定がある場合は、 SendTo メソッドを使用する必要があります。 SendTo メソッドを使用しない場合は、Connectの各呼び出しの前にSendを呼び出す必要があります。 SendToで既定のリモート ホストを確立した後でも、Connectを使用できます。 Sendを呼び出す前に、Connectの別の呼び出しを行うことで、既定のリモート ホストを変更することもできます。

接続指向プロトコルを使用している場合、 Send は、 Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、バッファー内のすべてのバイトが送信されるまでブロックされます。 タイムアウト値を超えた場合、 Send 呼び出しは SocketExceptionをスローします。 非ブロッキング モードでは、バッファー内のバイト数より小さい場合でも、 Send が正常に完了する可能性があります。 送信されたバイト数を追跡し、アプリケーションがバッファー内のバイトを送信するまで操作を再試行するのは、アプリケーションの責任です。 また、送信したデータがネットワークにすぐに表示される保証もありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる可能性があります。 Send メソッドが正常に完了すると、基になるシステムに、ネットワーク送信用にデータをバッファーする領域があることを意味します。

Note

SocketExceptionを受け取った場合は、SocketException.ErrorCode プロパティを使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 の API エラー コード のドキュメントを参照してください。

Note

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

Note

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

適用対象

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

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

指定したSocketを使用して、リスト内のバッファーのセットを接続された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
Public Function Send (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Integer

パラメーター

buffers
IList<ArraySegment<Byte>>

送信するデータを含むArraySegment<T>型のByteの一覧。

socketFlags
SocketFlags

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

返品

Socketに送信されたバイト数。

例外

buffers は nullです。

buffers が空です。

ソケットにアクセスしようとしたときにエラーが発生しました。

Socketが閉じられました。

注釈

このオーバーロードには、送信するデータを含むバッファーが少なくとも 1 つ必要です。 SocketFlags値の既定値は 0 です。 DontRoute フラグを socketFlags パラメーターとして指定した場合、送信するデータはルーティングされません。

コネクションレス プロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、 Send は SocketExceptionをスローします。 接続指向プロトコルを使用している場合は、 Connect を使用してリモート ホスト接続を確立するか、 Accept を使用して受信接続を受け入れる必要があります。

コネクションレス プロトコルを使用していて、複数の異なるホストにデータを送信する予定がある場合は、 SendTo メソッドを使用する必要があります。 SendTo メソッドを使用しない場合は、Connectの各呼び出しの前にSendを呼び出す必要があります。 SendToで既定のリモート ホストを確立した後でも、Connectを使用できます。 Sendを呼び出す前に、Connectの別の呼び出しを行うことで、既定のリモート ホストを変更することもできます。

接続指向プロトコルを使用している場合、 Send は、 Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、バッファー内のすべてのバイトが送信されるまでブロックされます。 タイムアウト値を超えた場合、 Send 呼び出しは SocketExceptionをスローします。 非ブロッキング モードでは、バッファー内のバイト数より小さい場合でも、 Send が正常に完了する可能性があります。 送信されたバイト数を追跡し、アプリケーションがバッファー内のバイトを送信するまで操作を再試行するのは、アプリケーションの責任です。 また、送信したデータがネットワークにすぐに表示される保証もありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる可能性があります。 Send メソッドが正常に完了すると、基になるシステムに、ネットワーク送信用にデータをバッファーする領域があることを意味します。

Note

SocketExceptionを受け取った場合は、SocketException.ErrorCode プロパティを使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 の API エラー コード のドキュメントを参照してください。

Note

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

Note

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

適用対象

Send(Byte[], SocketFlags)

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

指定したSocketを使用して、接続されている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
Public Function Send (buffer As Byte(), socketFlags As SocketFlags) As Integer

パラメーター

buffer
Byte[]

送信するデータを含む Byte 型の配列。

socketFlags
SocketFlags

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

返品

Socketに送信されたバイト数。

例外

buffer は nullです。

ソケットにアクセスしようとしたときにエラーが発生しました。

Socketが閉じられました。

例

次のコード例は、接続された Socketでデータを送信する方法を示しています。

// 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メソッドは、接続指向プロトコルとコネクションレス プロトコルの両方に使用できます。

このオーバーロードには、送信するデータと SocketFlagsのビットごとの組み合わせを含むバッファーが必要です。 バッファー オフセットの既定値は 0 で、送信するバイト数は既定でバッファーのサイズになります。 DontRoute パラメーター値として socketflags フラグを指定した場合、送信するデータはルーティングされません。

コネクションレス プロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、 Send は SocketExceptionをスローします。 接続指向プロトコルを使用している場合は、 Connect を使用してリモート ホスト接続を確立するか、 Accept を使用して受信接続を受け入れる必要があります。

コネクションレス プロトコルを使用していて、複数の異なるホストにデータを送信する予定がある場合は、 SendTo メソッドを使用する必要があります。 SendTo メソッドを使用しない場合は、Connectを呼び出すたびに、Send メソッドを呼び出す必要があります。 SendToで既定のリモート ホストを確立した後でも、Connectを使用できます。 Sendを呼び出す前に、Connectの別の呼び出しを行うことで、既定のリモート ホストを変更することもできます。

接続指向プロトコルを使用している場合、 Send は、 Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、バッファー内のすべてのバイトが送信されるまでブロックされます。 タイムアウト値を超えた場合、 Send 呼び出しは SocketExceptionをスローします。 非ブロッキング モードでは、バッファー内のバイト数より小さい場合でも、 Send が正常に完了する可能性があります。 送信されたバイト数を追跡し、アプリケーションが要求されたバイト数を送信するまで操作を再試行するのは、アプリケーションの責任です。 また、送信したデータがネットワークにすぐに表示される保証もありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる可能性があります。 Send メソッドが正常に完了すると、基になるシステムに、ネットワーク送信用にデータをバッファーする領域があることを意味します。

Note

バッファーのサイズが、基になるサービス プロバイダーの最大パケット サイズを超えないようにする必要があります。 送信された場合、データグラムは送信されず、 Send は SocketExceptionをスローします。 SocketExceptionを受け取った場合は、SocketException.ErrorCode プロパティを使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 の API エラー コード のドキュメントを参照してください。

Note

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

Note

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

こちらもご覧ください

適用対象

Send(ReadOnlySpan<Byte>, SocketFlags)

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

指定したSocketを使用して、接続されている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
Public Function Send (buffer As ReadOnlySpan(Of Byte), socketFlags As SocketFlags) As Integer

パラメーター

buffer
ReadOnlySpan<Byte>

送信するデータを含むバイトのスパン。

socketFlags
SocketFlags

送受信動作を指定する列挙値のビットごとの組み合わせ。

返品

Socketに送信されたバイト数。

例外

ソケットにアクセスしようとしたときにエラーが発生しました。

Socketが閉じられました。

こちらもご覧ください

適用対象

Send(Byte[])

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

接続されている 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 型の配列。

返品

Socketに送信されたバイト数。

例外

buffer は nullです。

ソケットにアクセスしようとしたときにエラーが発生しました。

Socketが閉じられました。

例

次のコード例は、接続された Socketでデータを送信する方法を示しています。

// 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 は、接続指向プロトコルとコネクションレス プロトコルの両方に使用できます。

このオーバーロードには、送信するデータを含むバッファーが必要です。 SocketFlags値の既定値は 0、バッファー オフセットの既定値は 0、送信するバイト数は既定でバッファーのサイズになります。

コネクションレス プロトコルを使用している場合は、このメソッドを呼び出す前に Connect を呼び出す必要があります。または、 Send は SocketExceptionをスローします。 接続指向プロトコルを使用している場合は、 Connect を使用してリモート ホスト接続を確立するか、 Accept を使用して受信接続を受け入れる必要があります。

コネクションレス プロトコルを使用していて、複数の異なるホストにデータを送信する予定がある場合は、 SendTo メソッドを使用する必要があります。 SendTo メソッドを使用しない場合は、Connectの各呼び出しの前にSendを呼び出す必要があります。 SendToで既定のリモート ホストを確立した後でも、Connectを使用できます。 Sendを呼び出す前に、Connectの別の呼び出しを行うことで、既定のリモート ホストを変更することもできます。

接続指向プロトコルを使用している場合、 Send は、 Socket.SendTimeoutを使用してタイムアウトが設定されていない限り、バッファー内のすべてのバイトが送信されるまでブロックされます。 タイムアウト値を超えた場合、 Send 呼び出しは SocketExceptionをスローします。 非ブロッキング モードでは、バッファー内のバイト数より小さい場合でも、 Send が正常に完了する可能性があります。 送信されたバイト数を追跡し、アプリケーションがバッファー内のバイトを送信するまで操作を再試行するのは、アプリケーションの責任です。 また、送信したデータがネットワークにすぐに表示される保証もありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる可能性があります。 Send メソッドが正常に完了すると、基になるシステムに、ネットワーク送信用にデータをバッファーする領域があることを意味します。

Note

SocketExceptionを受け取った場合は、SocketException.ErrorCode プロパティを使用して特定のエラー コードを取得します。 このコードを取得したら、エラーの詳細な説明については、 Windows ソケット バージョン 2 の API エラー コード のドキュメントを参照してください。

Note

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

Note

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

こちらもご覧ください

適用対象