Language

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 メソッドのオーバーロードのいずれかを使用します。

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

適用対象