UdpClient.BeginSend メソッド

定義

データグラムをリモート ホストに非同期的に送信します。

オーバーロード

名前 説明
BeginSend(Byte[], Int32, String, Int32, AsyncCallback, Object)

データグラムを非同期的に宛先に送信します。 宛先は、ホスト名とポート番号によって指定されます。

BeginSend(Byte[], Int32, IPEndPoint, AsyncCallback, Object)

データグラムを非同期的に宛先に送信します。 変換先は、 EndPointによって指定されます。

BeginSend(Byte[], Int32, AsyncCallback, Object)

データグラムをリモート ホストに非同期的に送信します。 宛先は、以前に Connect の呼び出しによって指定されました。

BeginSend(Byte[], Int32, String, Int32, AsyncCallback, Object)

ソース:
UDPClient.cs
ソース:
UDPClient.cs
ソース:
UDPClient.cs
ソース:
UDPClient.cs
ソース:
UDPClient.cs

データグラムを非同期的に宛先に送信します。 宛先は、ホスト名とポート番号によって指定されます。

public:
 IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ datagram, int bytes, System::String ^ hostname, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginSend(byte[] datagram, int bytes, string? hostname, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginSend(byte[] datagram, int bytes, string hostname, int port, AsyncCallback requestCallback, object state);
member this.BeginSend : byte[] * int * string * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (datagram As Byte(), bytes As Integer, hostname As String, port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

datagram
Byte[]

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

bytes
Int32

送信するバイト数。

hostname
String

宛先ホスト。

port
Int32

宛先ポート番号。

requestCallback
AsyncCallback

操作が完了したときに呼び出すメソッドを参照する AsyncCallback デリゲート。

state
Object

送信操作に関する情報を含むユーザー定義オブジェクト。 このオブジェクトは、操作が完了すると、 requestCallback デリゲートに渡されます。

返品

非同期送信を参照する IAsyncResult オブジェクト。

次のコード例では、 BeginSend を使用してサーバー要求を非同期的に送信します。

public static bool messageSent = false;

public static void SendCallback(IAsyncResult ar)
{
    UdpClient u = (UdpClient)ar.AsyncState;

    Console.WriteLine($"number of bytes sent: {u.EndSend(ar)}");
    messageSent = true;
}
static void SendMessage3(string server, string message)
{
    // create the udp socket
    UdpClient u = new UdpClient();

    byte[] sendBytes = Encoding.ASCII.GetBytes(message);

    // send the message
    // the destination is defined by the server name and port
    u.BeginSend(sendBytes, sendBytes.Length, server, s_listenPort, new AsyncCallback(SendCallback), u);

    // Do some work while we wait for the send to complete. For this example, we'll just sleep
    while (!messageSent)
    {
        Thread.Sleep(100);
    }
}

注釈

非同期 BeginSend 操作は、 EndSend メソッドを呼び出すことによって完了する必要があります。 通常、メソッドは requestCallback デリゲートによって呼び出されます。

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

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

適用対象

BeginSend(Byte[], Int32, IPEndPoint, AsyncCallback, Object)

ソース:
UDPClient.cs
ソース:
UDPClient.cs
ソース:
UDPClient.cs
ソース:
UDPClient.cs
ソース:
UDPClient.cs

データグラムを非同期的に宛先に送信します。 変換先は、 EndPointによって指定されます。

public:
 IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ datagram, int bytes, System::Net::IPEndPoint ^ endPoint, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginSend(byte[] datagram, int bytes, System.Net.IPEndPoint? endPoint, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginSend(byte[] datagram, int bytes, System.Net.IPEndPoint endPoint, AsyncCallback requestCallback, object state);
member this.BeginSend : byte[] * int * System.Net.IPEndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (datagram As Byte(), bytes As Integer, endPoint As IPEndPoint, requestCallback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

datagram
Byte[]

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

bytes
Int32

送信するバイト数。

endPoint
IPEndPoint

データの宛先を表す EndPoint

requestCallback
AsyncCallback

操作が完了したときに呼び出すメソッドを参照する AsyncCallback デリゲート。

state
Object

送信操作に関する情報を含むユーザー定義オブジェクト。 このオブジェクトは、操作が完了すると、 requestCallback デリゲートに渡されます。

返品

非同期送信を参照する IAsyncResult オブジェクト。

次のコード例では、 BeginSend を使用してサーバー要求を非同期的に送信します。

public static bool messageSent = false;

public static void SendCallback(IAsyncResult ar)
{
    UdpClient u = (UdpClient)ar.AsyncState;

    Console.WriteLine($"number of bytes sent: {u.EndSend(ar)}");
    messageSent = true;
}
static void SendMessage2(string server, string message)
{
    // create the udp socket
    UdpClient u = new UdpClient();
    byte[] sendBytes = Encoding.ASCII.GetBytes(message);

    // resolve the server name
    IPHostEntry heserver = Dns.GetHostEntry(server);

    IPEndPoint e = new IPEndPoint(heserver.AddressList[0], s_listenPort);

    // send the message
    // the destination is defined by the IPEndPoint
    u.BeginSend(sendBytes, sendBytes.Length, e, new AsyncCallback(SendCallback), u);

    // Do some work while we wait for the send to complete. For this example, we'll just sleep
    while (!messageSent)
    {
        Thread.Sleep(100);
    }
}

注釈

非同期 BeginSend 操作は、 EndSend メソッドを呼び出すことによって完了する必要があります。 通常、メソッドは requestCallback デリゲートによって呼び出されます。

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

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

適用対象

BeginSend(Byte[], Int32, AsyncCallback, Object)

ソース:
UDPClient.cs
ソース:
UDPClient.cs
ソース:
UDPClient.cs
ソース:
UDPClient.cs
ソース:
UDPClient.cs

データグラムをリモート ホストに非同期的に送信します。 宛先は、以前に Connect の呼び出しによって指定されました。

public:
 IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ datagram, int bytes, AsyncCallback ^ requestCallback, System::Object ^ state);
public IAsyncResult BeginSend(byte[] datagram, int bytes, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginSend(byte[] datagram, int bytes, AsyncCallback requestCallback, object state);
member this.BeginSend : byte[] * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (datagram As Byte(), bytes As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult

パラメーター

datagram
Byte[]

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

bytes
Int32

送信するバイト数。

requestCallback
AsyncCallback

操作が完了したときに呼び出すメソッドを参照する AsyncCallback デリゲート。

state
Object

送信操作に関する情報を含むユーザー定義オブジェクト。 このオブジェクトは、操作が完了すると、 requestCallback デリゲートに渡されます。

返品

非同期送信を参照する IAsyncResult オブジェクト。

次のコード例では、 BeginSend を使用してサーバー要求を非同期的に送信します。

public static bool messageSent = false;

public static void SendCallback(IAsyncResult ar)
{
    UdpClient u = (UdpClient)ar.AsyncState;

    Console.WriteLine($"number of bytes sent: {u.EndSend(ar)}");
    messageSent = true;
}
static void SendMessage1(string server, string message)
{
    // create the udp socket
    UdpClient u = new UdpClient();

    u.Connect(server, s_listenPort);
    byte[] sendBytes = Encoding.ASCII.GetBytes(message);

    // send the message
    // the destination is defined by the call to .Connect()
    u.BeginSend(sendBytes, sendBytes.Length, new AsyncCallback(SendCallback), u);

    // Do some work while we wait for the send to complete. For this example, we'll just sleep
    while (!messageSent)
    {
        Thread.Sleep(100);
    }
}

注釈

非同期 BeginSend 操作は、 EndSend メソッドを呼び出すことによって完了する必要があります。 通常、メソッドは requestCallback デリゲートによって呼び出されます。

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

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

適用対象