次の方法で共有


Socket.SendTo メソッド

定義

特定のエンドポイントにデータを送信します。

オーバーロード

名前 説明
SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)

指定したデータのバイト数を、バッファー内の指定した場所から開始し、指定した SocketFlagsを使用して、指定したエンドポイントに送信します。

SendTo(Byte[], Int32, SocketFlags, EndPoint)

指定した SocketFlagsを使用して、指定したデータのバイト数を指定したエンドポイントに送信します。

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

指定した SocketFlagsを使用して、特定のエンドポイントにデータを送信します。

SendTo(ReadOnlySpan<Byte>, EndPoint)

指定したエンドポイントにデータを送信します。

SendTo(Byte[], SocketFlags, EndPoint)

指定した SocketFlagsを使用して、特定のエンドポイントにデータを送信します。

SendTo(Byte[], EndPoint)

指定したエンドポイントにデータを送信します。

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

指定した SocketFlagsを使用して、特定のエンドポイントにデータを送信します。

SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)

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

指定したデータのバイト数を、バッファー内の指定した場所から開始し、指定した SocketFlagsを使用して、指定したエンドポイントに送信します。

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

パラメーター

buffer
Byte[]

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

offset
Int32

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

size
Int32

送信するバイト数。

socketFlags
SocketFlags

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

remoteEP
EndPoint

データの宛先の場所を表す EndPoint

返品

送信されたバイト数。

例外

buffernullです。

-又は-

remoteEPnullです。

offset が 0 未満です。

-又は-

offsetbufferの長さを超えています。

-又は-

size が 0 未満です。

-又は-

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

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

-又は-

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

Socketが閉じられました。

呼び出し履歴内の呼び出し元には、必要なアクセス許可がありません。

次のコード例では、指定したリモート ホストにコネクションレス データグラムを送信します。 オフセット、サイズ、および SocketFlags は、 SendTo メソッドに渡されます。

public static void SendTo4()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    byte[] msg = Encoding.ASCII.GetBytes("This is a test");
    Console.WriteLine("Sending data.");
    // This call blocks.
    s.SendTo(msg, 0, msg.Length, SocketFlags.None, endPoint);
    s.Close();
}
Public Shared Sub SendTo4() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    Dim msg As Byte() = Encoding.ASCII.GetBytes("This is a test")
    Console.WriteLine("Sending data.")
    ' This call blocks. 
    s.SendTo(msg, 0, msg.Length, SocketFlags.None, endPoint)
    s.Close()

End Sub

注釈

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

コネクションレス プロトコルを使用している場合は、SendToを呼び出す前に、Connect メソッドを使用して既定のリモート ホストを確立する必要はありません。 これは、 Send メソッドを呼び出す場合にのみ必要です。 SendToを呼び出す前に Connect メソッドを呼び出した場合、remoteEP パラメーターは、その送信操作に対してのみ指定された既定のリモート ホストをオーバーライドします。 また、基になるサービス プロバイダーによって最も適切なローカル ネットワーク アドレスとポート番号が割り当てられるため、 Bind メソッドを呼び出す必要はありません。 割り当てられたローカル ネットワーク アドレスとポート番号を識別する必要がある場合は、SendToメソッドが正常に完了した後に、LocalEndPoint プロパティを使用できます。

SendToはコネクションレス プロトコルを対象としていますが、接続指向プロトコルでも機能します。 接続指向プロトコルを使用している場合は、まず、 Connect メソッドを呼び出してリモート ホスト接続を確立するか、 Accept メソッドを使用して受信接続要求を受け入れる必要があります。 リモート ホスト接続を確立または受け入れなかった場合、 SendToSocketExceptionをスローします。 SendTo メソッドを呼び出す前に、コネクションレス プロトコルの既定のリモート ホストを確立することもできます。 いずれの場合も、 SendToremoteEP パラメーターを無視し、接続されているリモート ホストまたは既定のリモート ホストにのみデータを送信します。

ブロックソケットは、要求されたバイト数が送信されるまでブロックされます。 非ブロッキング Socket はすぐに完了するため、1 回の操作で要求されたすべてのバイトが送信されない場合があります。 アプリケーションは、送信されたバイト数を追跡し、アプリケーションが要求されたバイト数を送信するまで操作を再試行する必要があります。 また、送信したデータがネットワークにすぐに表示される保証もありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる可能性があります。 SendTo メソッドが正常に完了すると、基になるシステムに、ネットワーク送信用にデータをバッファーする領域があることを意味します。

ブロッキング モードでコネクションレス プロトコルを使用している場合、 SendTo はデータグラムが送信されるまでブロックされます。 ブロードキャスト アドレスにデータを送信する場合は、最初に SetSocketOption メソッドを呼び出し、ソケット オプションを SocketOptionName.Broadcast に設定する必要があります。 また、サイズが基になるサービス プロバイダーの最大パケット サイズを超えないようにする必要があります。 送信された場合、データグラムは送信されず、 SendToSocketExceptionをスローします。

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

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

こちらもご覧ください

適用対象

SendTo(Byte[], Int32, SocketFlags, EndPoint)

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

指定した SocketFlagsを使用して、指定したデータのバイト数を指定したエンドポイントに送信します。

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

パラメーター

buffer
Byte[]

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

size
Int32

送信するバイト数。

socketFlags
SocketFlags

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

remoteEP
EndPoint

データの宛先の場所を表す EndPoint

返品

送信されたバイト数。

例外

buffernullです。

-又は-

remoteEPnullです。

指定した sizebufferのサイズを超えています。

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

Socketが閉じられました。

次のコード例では、指定したリモート ホストにコネクションレス データグラムを送信します。 サイズと SocketFlags は、 SendTo メソッドに渡されます。

public static void SendTo3()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    byte[] msg = Encoding.ASCII.GetBytes("This is a test");
    Console.WriteLine("Sending data.");
    // This call blocks.
    s.SendTo(msg, msg.Length, SocketFlags.None, endPoint);
    s.Close();
}
Public Shared Sub SendTo3() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    Dim msg As Byte() = Encoding.ASCII.GetBytes("This is a test")
    Console.WriteLine("Sending data.")
    ' This call blocks. 
    s.SendTo(msg, msg.Length, SocketFlags.None, endPoint)
    s.Close()

End Sub

注釈

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

コネクションレス プロトコルを使用している場合は、SendToを呼び出す前に、Connect メソッドを使用して既定のリモート ホストを確立する必要はありません。 これは、 Send メソッドを呼び出す場合にのみ必要です。 SendToを呼び出す前に Connect メソッドを呼び出した場合、remoteEP パラメーターは、その送信操作に対してのみ指定された既定のリモート ホストをオーバーライドします。 また、基になるサービス プロバイダーによって最も適切なローカル ネットワーク アドレスとポート番号が割り当てられるため、 Bind メソッドを呼び出す必要はありません。 割り当てられたローカル ネットワーク アドレスとポート番号を識別する必要がある場合は、SendToメソッドが正常に完了した後に、LocalEndPoint プロパティを使用できます。

SendToはコネクションレス プロトコルを対象としていますが、接続指向プロトコルでも機能します。 接続指向プロトコルを使用している場合は、まず、 Connect メソッドを呼び出してリモート ホスト接続を確立するか、 Accept メソッドを使用して受信接続要求を受け入れる必要があります。 リモート ホスト接続を確立または受け入れなかった場合、 SendToSocketExceptionをスローします。 SendTo メソッドを呼び出す前に、コネクションレス プロトコルの既定のリモート ホストを確立することもできます。 いずれの場合も、 SendToremoteEP パラメーターを無視し、接続されているリモート ホストまたは既定のリモート ホストにのみデータを送信します。

ブロックソケットは、要求されたバイト数が送信されるまでブロックされます。 非ブロッキング Socket はすぐに完了するため、1 回の操作で要求されたすべてのバイトが送信されない場合があります。 送信されたバイト数を追跡し、アプリケーションが要求されたバイト数を送信するまで操作を再試行するのは、アプリケーションの責任です。 また、送信したデータがネットワークにすぐに表示される保証もありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる可能性があります。 SendTo メソッドが正常に完了すると、基になるシステムに、ネットワーク送信用にデータをバッファーする領域があることを意味します。

ブロッキング モードでコネクションレス プロトコルを使用している場合、 SendTo はデータグラムが送信されるまでブロックされます。 ブロードキャスト アドレスにデータを送信する場合は、最初に SetSocketOption メソッドを呼び出し、ソケット オプションを SocketOptionName.Broadcast に設定する必要があります。 また、送信されたバイト数が、基になるサービス プロバイダーの最大パケット サイズを超えていないことも確認する必要があります。 送信された場合、データグラムは送信されず、 SendToSocketExceptionをスローします。

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

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

こちらもご覧ください

適用対象

SendTo(ReadOnlySpan<Byte>, SocketFlags, SocketAddress)

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

指定した SocketFlagsを使用して、特定のエンドポイントにデータを送信します。

public:
 int SendTo(ReadOnlySpan<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::SocketAddress ^ socketAddress);
public int SendTo(ReadOnlySpan<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.SocketAddress socketAddress);
member this.SendTo : ReadOnlySpan<byte> * System.Net.Sockets.SocketFlags * System.Net.SocketAddress -> int
Public Function SendTo (buffer As ReadOnlySpan(Of Byte), socketFlags As SocketFlags, socketAddress As SocketAddress) As Integer

パラメーター

buffer
ReadOnlySpan<Byte>

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

socketFlags
SocketFlags

データの送信時に使用される SocketFlags 値のビットごとの組み合わせ。

socketAddress
SocketAddress

データの宛先を表す SocketAddress

返品

送信されたバイト数。

例外

socketAddressnullです。

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

Socketが閉じられました。

適用対象

SendTo(ReadOnlySpan<Byte>, EndPoint)

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

指定したエンドポイントにデータを送信します。

public:
 int SendTo(ReadOnlySpan<System::Byte> buffer, System::Net::EndPoint ^ remoteEP);
public int SendTo(ReadOnlySpan<byte> buffer, System.Net.EndPoint remoteEP);
member this.SendTo : ReadOnlySpan<byte> * System.Net.EndPoint -> int
Public Function SendTo (buffer As ReadOnlySpan(Of Byte), remoteEP As EndPoint) As Integer

パラメーター

buffer
ReadOnlySpan<Byte>

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

remoteEP
EndPoint

データの宛先を表す EndPoint

返品

送信されたバイト数。

例外

remoteEPnullです。

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

Socketが閉じられました。

適用対象

SendTo(Byte[], SocketFlags, EndPoint)

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

指定した SocketFlagsを使用して、特定のエンドポイントにデータを送信します。

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

パラメーター

buffer
Byte[]

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

socketFlags
SocketFlags

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

remoteEP
EndPoint

データの宛先の場所を表す EndPoint

返品

送信されたバイト数。

例外

buffernullです。

-又は-

remoteEPnullです。

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

Socketが閉じられました。

次のコード例では、指定したリモート ホストにコネクションレス データグラムを送信します。 SocketFlags は、 SendTo メソッドに渡されます。

public static void SendTo2()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    byte[] msg = Encoding.ASCII.GetBytes("This is a test");
    Console.WriteLine("Sending data.");
    // This call blocks.
    s.SendTo(msg, SocketFlags.None, endPoint);
    s.Close();
}
Public Shared Sub SendTo2() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    Dim msg As Byte() = Encoding.ASCII.GetBytes("This is a test")
    Console.WriteLine("Sending data.")
    ' This call blocks. 
    s.SendTo(msg, SocketFlags.None, endPoint)
    s.Close()

End Sub

注釈

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

コネクションレス プロトコルを使用している場合は、SendToを呼び出す前に、Connect メソッドを使用して既定のリモート ホストを確立する必要はありません。 これは、 Send メソッドを呼び出す場合にのみ必要です。 SendToを呼び出す前に Connect メソッドを呼び出した場合、remoteEP パラメーターは、その送信操作に対してのみ指定された既定のリモート ホストをオーバーライドします。 また、基になるサービス プロバイダーによって最も適切なローカル ネットワーク アドレスとポート番号が割り当てられるため、 Bind メソッドを呼び出す必要はありません。 割り当てられたローカル ネットワーク アドレスとポート番号を識別する必要がある場合は、SendToメソッドが正常に完了した後に、LocalEndPoint プロパティを使用できます。

SendToはコネクションレス プロトコルを対象としていますが、接続指向プロトコルでも機能します。 接続指向プロトコルを使用している場合は、まず、 Connect メソッドを呼び出してリモート ホスト接続を確立するか、 Accept メソッドを使用して受信接続要求を受け入れる必要があります。 リモート ホスト接続を確立または受け入れなかった場合、 SendToSocketExceptionをスローします。 SendTo メソッドを呼び出す前に、コネクションレス プロトコルの既定のリモート ホストを確立することもできます。 いずれの場合も、 SendToremoteEP パラメーターを無視し、接続されているリモート ホストまたは既定のリモート ホストにのみデータを送信します。

ブロックソケットは、要求された buffer 内のすべてのバイトが送信されるまでブロックされます。 非ブロッキング Socket はすぐに完了するため、 buffer内のすべてのバイトが送信されない場合があります。 送信されたバイト数を追跡し、アプリケーションが buffer内のすべてのバイトを送信するまで操作を再試行するのは、アプリケーションの責任です。 また、送信したデータがネットワークにすぐに表示される保証もありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる可能性があります。 SendTo メソッドが正常に完了すると、基になるシステムに、ネットワーク送信用にデータをバッファーする領域があることを意味します。

ブロッキング モードでコネクションレス プロトコルを使用している場合、 SendTo はデータグラムが送信されるまでブロックされます。 ブロードキャスト アドレスにデータを送信する場合は、最初に SetSocketOption メソッドを呼び出し、ソケット オプションを SocketOptionName.Broadcast に設定する必要があります。 また、送信されたバイト数が、基になるサービス プロバイダーの最大パケット サイズを超えていないことも確認する必要があります。 送信された場合、データグラムは送信されず、 SendToSocketExceptionをスローします。

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

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

こちらもご覧ください

適用対象

SendTo(Byte[], EndPoint)

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

指定したエンドポイントにデータを送信します。

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

パラメーター

buffer
Byte[]

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

remoteEP
EndPoint

データの宛先を表す EndPoint

返品

送信されたバイト数。

例外

buffernullです。

-又は-

remoteEPnullです。

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

Socketが閉じられました。

次のコード例では、指定したリモート ホストにコネクションレス データグラムを送信します。

public static void SendTo1()
{
    IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
    IPEndPoint endPoint = new IPEndPoint(hostEntry.AddressList[0], 11000);

    Socket s = new Socket(endPoint.Address.AddressFamily,
        SocketType.Dgram,
        ProtocolType.Udp);

    byte[] msg = Encoding.ASCII.GetBytes("This is a test");
    Console.WriteLine("Sending data.");
    // This call blocks.
    s.SendTo(msg, endPoint);
    s.Close();
}
Public Shared Sub SendTo1() 
    Dim hostEntry As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
    Dim endPoint As New IPEndPoint(hostEntry.AddressList(0), 11000)
    
    Dim s As New Socket(endPoint.Address.AddressFamily, SocketType.Dgram, ProtocolType.Udp)
    
    Dim msg As Byte() = Encoding.ASCII.GetBytes("This is a test")
    Console.WriteLine("Sending data.")
    ' This call blocks. 
    s.SendTo(msg, endPoint)
    s.Close()

End Sub

注釈

このオーバーロードでは、バッファー オフセットの既定値は 0、送信するバイト数は既定で buffer パラメーターのサイズ、 SocketFlags の値は既定値は 0 です。

コネクションレス プロトコルを使用している場合は、SendToを呼び出す前に、Connect メソッドを使用して既定のリモート ホストを確立する必要はありません。 これは、 Send メソッドを呼び出す場合にのみ必要です。 SendToを呼び出す前に Connect メソッドを呼び出した場合、remoteEP パラメーターは、その送信操作に対してのみ指定された既定のリモート ホストをオーバーライドします。 また、基になるサービス プロバイダーによって最も適切なローカル ネットワーク アドレスとポート番号が割り当てられるため、 Bind メソッドを呼び出す必要はありません。 割り当てられたローカル ネットワーク アドレスとポート番号を識別する必要がある場合は、SendToメソッドが正常に完了した後に、LocalEndPoint プロパティを使用できます。

SendToはコネクションレス プロトコルを対象としていますが、接続指向プロトコルでも機能します。 接続指向プロトコルを使用している場合は、まず、 Connect メソッドを呼び出してリモート ホスト接続を確立するか、 Accept メソッドを使用して受信接続要求を受け入れる必要があります。 リモート ホスト接続を確立または受け入れなかった場合、 SendToSocketExceptionをスローします。 SendTo メソッドを呼び出す前に、コネクションレス プロトコルの既定のリモート ホストを確立することもできます。 いずれの場合も、 SendToremoteEP パラメーターを無視し、接続されているリモート ホストまたは既定のリモート ホストにのみデータを送信します。

ブロッキング ソケットは、バッファー内のすべてのバイトが送信されるまでブロックされます。 非ブロッキング Socket はすぐに完了するため、 buffer内のすべてのバイトが送信されない場合があります。 送信されたバイト数を追跡し、アプリケーションが buffer内のすべてのバイトを送信するまで操作を再試行するのは、アプリケーションの責任です。 また、送信したデータがネットワークにすぐに表示される保証もありません。 ネットワーク効率を高めるために、基になるシステムは、大量の送信データが収集されるまで送信を遅らせる可能性があります。 SendTo メソッドが正常に完了すると、基になるシステムに、ネットワーク送信用にデータをバッファーする領域があることを意味します。

ブロッキング モードでコネクションレス プロトコルを使用している場合、 SendTo はデータグラムが送信されるまでブロックされます。 ブロードキャスト アドレスにデータを送信する場合は、最初に SetSocketOption メソッドを呼び出し、ソケット オプションを SocketOptionName.Broadcast に設定する必要があります。 また、送信されたバイト数が、基になるサービス プロバイダーの最大パケット サイズを超えていないことも確認する必要があります。 送信された場合、データグラムは送信されず、 SendToSocketExceptionをスローします。

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

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

こちらもご覧ください

適用対象

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

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

指定した SocketFlagsを使用して、特定のエンドポイントにデータを送信します。

public:
 int SendTo(ReadOnlySpan<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEP);
public int SendTo(ReadOnlySpan<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP);
member this.SendTo : ReadOnlySpan<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> int
Public Function SendTo (buffer As ReadOnlySpan(Of Byte), socketFlags As SocketFlags, remoteEP As EndPoint) As Integer

パラメーター

buffer
ReadOnlySpan<Byte>

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

socketFlags
SocketFlags

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

remoteEP
EndPoint

データの宛先を表す EndPoint

返品

送信されたバイト数。

例外

remoteEPnullです。

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

Socketが閉じられました。

適用対象