UdpClient.BeginSend Método

Definición

Envía un datagrama a un host remoto de forma asincrónica.

Sobrecargas

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

Envía un datagrama a un destino de forma asincrónica. El destino se especifica mediante el nombre de host y el número de puerto.

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

Envía un datagrama a un destino de forma asincrónica. El destino se especifica mediante .EndPoint

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

Envía un datagrama a un host remoto de forma asincrónica. El destino se especificó anteriormente mediante una llamada a Connect.

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

Source:
UDPClient.cs
Source:
UDPClient.cs
Source:
UDPClient.cs
Source:
UDPClient.cs
Source:
UDPClient.cs

Envía un datagrama a un destino de forma asincrónica. El destino se especifica mediante el nombre de host y el número de puerto.

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

Parámetros

datagram
Byte[]

Matriz Byte que contiene los datos que se van a enviar.

bytes
Int32

Número de bytes que se van a enviar.

hostname
String

Host de destino.

port
Int32

Número de puerto de destino.

requestCallback
AsyncCallback

AsyncCallback Delegado que hace referencia al método que se va a invocar cuando se completa la operación.

state
Object

Objeto definido por el usuario que contiene información sobre la operación de envío. Este objeto se pasa al requestCallback delegado cuando se completa la operación.

Devoluciones

Objeto IAsyncResult que hace referencia al envío asincrónico.

Ejemplos

En el ejemplo de código siguiente se usa BeginSend para enviar de forma asincrónica una solicitud de servidor.

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

Comentarios

La operación asincrónica BeginSend debe completarse llamando al EndSend método . Normalmente, el delegado invoca el requestCallback método .

Este método no se bloquea hasta que se complete la operación. Para bloquear hasta que se complete la operación, use una de las sobrecargas del Send método .

Para obtener información detallada sobre el uso del modelo de programación asincrónica, vea Llamar a métodos sincrónicos de forma asincrónica.

Se aplica a

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

Source:
UDPClient.cs
Source:
UDPClient.cs
Source:
UDPClient.cs
Source:
UDPClient.cs
Source:
UDPClient.cs

Envía un datagrama a un destino de forma asincrónica. El destino se especifica mediante .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

Parámetros

datagram
Byte[]

Matriz Byte que contiene los datos que se van a enviar.

bytes
Int32

Número de bytes que se van a enviar.

endPoint
IPEndPoint

EndPoint que representa el destino de los datos.

requestCallback
AsyncCallback

AsyncCallback Delegado que hace referencia al método que se va a invocar cuando se completa la operación.

state
Object

Objeto definido por el usuario que contiene información sobre la operación de envío. Este objeto se pasa al requestCallback delegado cuando se completa la operación.

Devoluciones

Objeto IAsyncResult que hace referencia al envío asincrónico.

Ejemplos

En el ejemplo de código siguiente se usa BeginSend para enviar de forma asincrónica una solicitud de servidor.

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

Comentarios

La operación asincrónica BeginSend debe completarse llamando al EndSend método . Normalmente, el delegado invoca el requestCallback método .

Este método no se bloquea hasta que se complete la operación. Para bloquear hasta que se complete la operación, use una de las sobrecargas del Send método .

Para obtener información detallada sobre el uso del modelo de programación asincrónica, vea Llamar a métodos sincrónicos de forma asincrónica.

Se aplica a

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

Source:
UDPClient.cs
Source:
UDPClient.cs
Source:
UDPClient.cs
Source:
UDPClient.cs
Source:
UDPClient.cs

Envía un datagrama a un host remoto de forma asincrónica. El destino se especificó anteriormente mediante una llamada a 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

Parámetros

datagram
Byte[]

Matriz Byte que contiene los datos que se van a enviar.

bytes
Int32

Número de bytes que se van a enviar.

requestCallback
AsyncCallback

AsyncCallback Delegado que hace referencia al método que se va a invocar cuando se completa la operación.

state
Object

Objeto definido por el usuario que contiene información sobre la operación de envío. Este objeto se pasa al requestCallback delegado cuando se completa la operación.

Devoluciones

Objeto IAsyncResult que hace referencia al envío asincrónico.

Ejemplos

En el ejemplo de código siguiente se usa BeginSend para enviar de forma asincrónica una solicitud de servidor.

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

Comentarios

La operación asincrónica BeginSend debe completarse llamando al EndSend método . Normalmente, el delegado invoca el requestCallback método .

Este método no se bloquea hasta que se complete la operación. Para bloquear hasta que se complete la operación, use una de las sobrecargas del Send método .

Para obtener información detallada sobre el uso del modelo de programación asincrónica, vea Llamar a métodos sincrónicos de forma asincrónica.

Se aplica a