Bagikan melalui


UdpClient.BeginSend Metode

Definisi

Mengirim datagram ke host jarak jauh secara asinkron.

Overload

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

Mengirim datagram ke tujuan secara asinkron. Tujuan ditentukan oleh nama host dan nomor port.

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

Mengirim datagram ke tujuan secara asinkron. Tujuan ditentukan oleh EndPoint.

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

Mengirim datagram ke host jarak jauh secara asinkron. Tujuan ditentukan sebelumnya oleh panggilan ke Connect.

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

Sumber:
UDPClient.cs
Sumber:
UDPClient.cs
Sumber:
UDPClient.cs

Mengirim datagram ke tujuan secara asinkron. Tujuan ditentukan oleh nama host dan nomor port.

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

Parameter

datagram
Byte[]

Array Byte yang berisi data yang akan dikirim.

bytes
Int32

Jumlah byte yang akan dikirim.

hostname
String

Host tujuan.

port
Int32

Nomor port tujuan.

requestCallback
AsyncCallback

Delegasi AsyncCallback yang mereferensikan metode untuk dipanggil saat operasi selesai.

state
Object

Objek yang ditentukan pengguna yang berisi informasi tentang operasi pengiriman. Objek ini diteruskan ke requestCallback delegasi ketika operasi selesai.

Mengembalikan

Objek IAsyncResult yang mereferensikan pengiriman asinkron.

Contoh

Contoh kode berikut menggunakan BeginSend untuk mengirim permintaan server secara asinkron.

public:
    static bool isMessageSent;

    static void SendCallback(IAsyncResult^ asyncResult)
    {
        UdpClient^ udpClient = (UdpClient^)asyncResult->AsyncState;

        Console::WriteLine("number of bytes sent: {0}",
            udpClient->EndSend(asyncResult));
        isMessageSent = true;
    }
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;
}
public:
    static void SendMessage3(String^ server, String^ message)
    {
        // create the udp socket
        UdpClient^ udpClient = gcnew UdpClient();

        array<Byte>^ sendBytes = Encoding::ASCII->GetBytes(message);

        // send the message
        // the destination is defined by the server name and port
        udpClient->BeginSend(sendBytes, sendBytes->Length, server, listenPort,
            gcnew AsyncCallback(SendCallback), udpClient);

        // Do some work while we wait for the send to complete. For
        // this example, we'll just sleep
        while (!isMessageSent)
        {
            Thread::Sleep(100);
        }
    }
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);
    }
}

Keterangan

Operasi asinkron BeginSend harus diselesaikan dengan memanggil EndSend metode . Biasanya, metode ini dipanggil oleh requestCallback delegasi.

Metode ini tidak memblokir sampai operasi selesai. Untuk memblokir hingga operasi selesai, gunakan salah Send satu metode kelebihan beban.

Untuk informasi terperinci tentang menggunakan model pemrograman asinkron, lihat Memanggil Metode Sinkron Secara Asinkron.

Berlaku untuk

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

Sumber:
UDPClient.cs
Sumber:
UDPClient.cs
Sumber:
UDPClient.cs

Mengirim datagram ke tujuan secara asinkron. Tujuan ditentukan oleh 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

Parameter

datagram
Byte[]

Array Byte yang berisi data yang akan dikirim.

bytes
Int32

Jumlah byte yang akan dikirim.

endPoint
IPEndPoint

EndPoint yang mewakili tujuan untuk data.

requestCallback
AsyncCallback

Delegasi AsyncCallback yang mereferensikan metode untuk dipanggil saat operasi selesai.

state
Object

Objek yang ditentukan pengguna yang berisi informasi tentang operasi pengiriman. Objek ini diteruskan ke requestCallback delegasi ketika operasi selesai.

Mengembalikan

Objek IAsyncResult yang mereferensikan pengiriman asinkron.

Contoh

Contoh kode berikut menggunakan BeginSend untuk mengirim permintaan server secara asinkron.

public:
    static bool isMessageSent;

    static void SendCallback(IAsyncResult^ asyncResult)
    {
        UdpClient^ udpClient = (UdpClient^)asyncResult->AsyncState;

        Console::WriteLine("number of bytes sent: {0}",
            udpClient->EndSend(asyncResult));
        isMessageSent = true;
    }
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;
}
public:
    static void SendMessage2(String^ server, String^ message)
    {
        // create the udp socket
        UdpClient^ udpClient = gcnew UdpClient();
        array<Byte>^ sendBytes = Encoding::ASCII->GetBytes(message);

        // resolve the server name
        IPHostEntry^ resolvedServer = Dns::GetHostEntry(server);

        IPEndPoint^ ipEndPoint =
            gcnew IPEndPoint(resolvedServer->AddressList[0], listenPort);

        // send the message
        // the destination is defined by the IPEndPoint
        udpClient->BeginSend(sendBytes, sendBytes->Length, ipEndPoint,
            gcnew AsyncCallback(SendCallback), udpClient);

        // Do some work while we wait for the send to complete. For
        // this example, we'll just sleep
        while (!isMessageSent)
        {
            Thread::Sleep(100);
        }
    }
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);
    }
}

Keterangan

Operasi asinkron BeginSend harus diselesaikan dengan memanggil EndSend metode . Biasanya, metode ini dipanggil oleh requestCallback delegasi.

Metode ini tidak memblokir sampai operasi selesai. Untuk memblokir hingga operasi selesai, gunakan salah Send satu metode kelebihan beban.

Untuk informasi terperinci tentang menggunakan model pemrograman asinkron, lihat Memanggil Metode Sinkron Secara Asinkron.

Berlaku untuk

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

Sumber:
UDPClient.cs
Sumber:
UDPClient.cs
Sumber:
UDPClient.cs

Mengirim datagram ke host jarak jauh secara asinkron. Tujuan ditentukan sebelumnya oleh panggilan ke 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

Parameter

datagram
Byte[]

Array Byte yang berisi data yang akan dikirim.

bytes
Int32

Jumlah byte yang akan dikirim.

requestCallback
AsyncCallback

Delegasi AsyncCallback yang mereferensikan metode untuk dipanggil saat operasi selesai.

state
Object

Objek yang ditentukan pengguna yang berisi informasi tentang operasi pengiriman. Objek ini diteruskan ke requestCallback delegasi ketika operasi selesai.

Mengembalikan

Objek IAsyncResult yang mereferensikan pengiriman asinkron.

Contoh

Contoh kode berikut menggunakan BeginSend untuk mengirim permintaan server secara asinkron.

public:
    static bool isMessageSent;

    static void SendCallback(IAsyncResult^ asyncResult)
    {
        UdpClient^ udpClient = (UdpClient^)asyncResult->AsyncState;

        Console::WriteLine("number of bytes sent: {0}",
            udpClient->EndSend(asyncResult));
        isMessageSent = true;
    }
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;
}
public:
    static void SendMessage1(String^ server, String^ message)
    {
        // create the udp socket
        UdpClient^ udpClient = gcnew UdpClient();

        udpClient->Connect(server, listenPort);
        array<Byte>^ sendBytes = Encoding::ASCII->GetBytes(message);

        // send the message
        // the destination is defined by the call to .Connect()
        udpClient->BeginSend(sendBytes, sendBytes->Length,
            gcnew AsyncCallback(SendCallback), udpClient);

        // Do some work while we wait for the send to complete. For
        // this example, we'll just sleep
        while (!isMessageSent)
        {
            Thread::Sleep(100);
        }
    }
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);
    }
}

Keterangan

Operasi asinkron BeginSend harus diselesaikan dengan memanggil EndSend metode . Biasanya, metode ini dipanggil oleh requestCallback delegasi.

Metode ini tidak memblokir sampai operasi selesai. Untuk memblokir hingga operasi selesai, gunakan salah Send satu metode kelebihan beban.

Untuk informasi terperinci tentang menggunakan model pemrograman asinkron, lihat Memanggil Metode Sinkron Secara Asinkron.

Berlaku untuk