Udostępnij za pośrednictwem


UdpClient.BeginSend Metoda

Definicja

Wysyła datagram do hosta zdalnego asynchronicznie.

Przeciążenia

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

Wysyła datagram do miejsca docelowego asynchronicznie. Miejsce docelowe jest określane przez nazwę hosta i numer portu.

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

Wysyła datagram do miejsca docelowego asynchronicznie. Miejsce docelowe jest określone przez element EndPoint.

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

Wysyła datagram do hosta zdalnego asynchronicznie. Miejsce docelowe zostało wcześniej określone przez wywołanie metody Connect.

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

Źródło:
UDPClient.cs
Źródło:
UDPClient.cs
Źródło:
UDPClient.cs

Wysyła datagram do miejsca docelowego asynchronicznie. Miejsce docelowe jest określane przez nazwę hosta i numer portu.

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

Parametry

datagram
Byte[]

Tablica zawierająca Byte dane do wysłania.

bytes
Int32

Liczba bajtów do wysłania.

hostname
String

Host docelowy.

port
Int32

Numer portu docelowego.

requestCallback
AsyncCallback

Delegat AsyncCallback , który odwołuje się do metody wywoływania po zakończeniu operacji.

state
Object

Obiekt zdefiniowany przez użytkownika, który zawiera informacje o operacji wysyłania. Ten obiekt jest przekazywany do delegata requestCallback po zakończeniu operacji.

Zwraca

IAsyncResult Obiekt odwołujący się do wysyłania asynchronicznego.

Przykłady

Poniższy przykład kodu używa BeginSend metody do asynchronicznego wysyłania żądania serwera.

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);
    }
}

Uwagi

Operacja asynchroniczna musi zostać ukończona BeginSend przez wywołanie EndSend metody . Zazwyczaj metoda jest wywoływana przez delegata requestCallback .

Ta metoda nie blokuje się do momentu ukończenia operacji. Aby zablokować operację do czasu zakończenia operacji, użyj jednego z Send przeciążeń metody.

Aby uzyskać szczegółowe informacje na temat korzystania z modelu programowania asynchronicznego, zobacz Asynchroniczne wywoływanie metod synchronicznych.

Dotyczy

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

Źródło:
UDPClient.cs
Źródło:
UDPClient.cs
Źródło:
UDPClient.cs

Wysyła datagram do miejsca docelowego asynchronicznie. Miejsce docelowe jest określone przez element 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

Parametry

datagram
Byte[]

Tablica zawierająca Byte dane do wysłania.

bytes
Int32

Liczba bajtów do wysłania.

endPoint
IPEndPoint

Obiekt EndPoint reprezentujący miejsce docelowe danych.

requestCallback
AsyncCallback

Delegat AsyncCallback , który odwołuje się do metody wywoływania po zakończeniu operacji.

state
Object

Obiekt zdefiniowany przez użytkownika, który zawiera informacje o operacji wysyłania. Ten obiekt jest przekazywany do delegata requestCallback po zakończeniu operacji.

Zwraca

IAsyncResult Obiekt odwołujący się do wysyłania asynchronicznego.

Przykłady

Poniższy przykład kodu używa BeginSend metody do asynchronicznego wysyłania żądania serwera.

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);
    }
}

Uwagi

Operacja asynchroniczna musi zostać ukończona BeginSend przez wywołanie EndSend metody . Zazwyczaj metoda jest wywoływana przez delegata requestCallback .

Ta metoda nie blokuje się do momentu ukończenia operacji. Aby zablokować operację do czasu zakończenia operacji, użyj jednego z Send przeciążeń metody.

Aby uzyskać szczegółowe informacje na temat korzystania z modelu programowania asynchronicznego, zobacz Asynchroniczne wywoływanie metod synchronicznych.

Dotyczy

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

Źródło:
UDPClient.cs
Źródło:
UDPClient.cs
Źródło:
UDPClient.cs

Wysyła datagram do hosta zdalnego asynchronicznie. Miejsce docelowe zostało wcześniej określone przez wywołanie metody 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

Parametry

datagram
Byte[]

Tablica zawierająca Byte dane do wysłania.

bytes
Int32

Liczba bajtów do wysłania.

requestCallback
AsyncCallback

Delegat AsyncCallback , który odwołuje się do metody wywoływania po zakończeniu operacji.

state
Object

Obiekt zdefiniowany przez użytkownika, który zawiera informacje o operacji wysyłania. Ten obiekt jest przekazywany do delegata requestCallback po zakończeniu operacji.

Zwraca

IAsyncResult Obiekt odwołujący się do wysyłania asynchronicznego.

Przykłady

Poniższy przykład kodu używa BeginSend metody do asynchronicznego wysyłania żądania serwera.

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);
    }
}

Uwagi

Operacja asynchroniczna musi zostać ukończona BeginSend przez wywołanie EndSend metody . Zazwyczaj metoda jest wywoływana przez delegata requestCallback .

Ta metoda nie blokuje się do momentu zakończenia operacji. Aby zablokować operację do czasu zakończenia operacji, użyj jednego z Send przeciążeń metody.

Aby uzyskać szczegółowe informacje na temat korzystania z modelu programowania asynchronicznego, zobacz Asynchroniczne wywoływanie metod synchronicznych.

Dotyczy