UdpClient.BeginSend Metod

Definition

Skickar ett datagram till en fjärrvärd asynkront.

Överlagringar

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

Skickar ett datagram till en fjärrvärd asynkront. Målet angavs tidigare av ett anrop till Connect.

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

Skickar ett datagram till ett mål asynkront. Målet anges av en EndPoint.

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

Skickar ett datagram till ett mål asynkront. Målet anges av värdnamnet och portnumret.

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

Skickar ett datagram till en fjärrvärd asynkront. Målet angavs tidigare av ett anrop till 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);
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

Parametrar

datagram
Byte[]

En Byte matris som innehåller de data som ska skickas.

bytes
Int32

Antalet byte som ska skickas.

requestCallback
AsyncCallback

Ett AsyncCallback ombud som refererar till den metod som ska anropas när åtgärden är klar.

state
Object

Ett användardefinierat objekt som innehåller information om sändningsåtgärden. Det här objektet skickas till ombudet requestCallback när åtgärden är klar.

Returer

Ett IAsyncResult objekt som refererar till den asynkrona sändningen.

Exempel

I följande kodexempel används BeginSend för att asynkront skicka en serverbegäran.

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

Kommentarer

Den asynkrona BeginSend åtgärden måste slutföras genom att anropa EndSend metoden. Metoden anropas vanligtvis av ombudet requestCallback .

Den här metoden blockeras inte förrän åtgärden har slutförts. Om du vill blockera tills åtgärden är klar använder du en av Send metodöverlagringarna.

Detaljerad information om hur du använder den asynkrona programmeringsmodellen finns i Anropa synkrona metoder asynkront.

Gäller för

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

Skickar ett datagram till ett mål asynkront. Målet anges av en 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);
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

Parametrar

datagram
Byte[]

En Byte matris som innehåller de data som ska skickas.

bytes
Int32

Antalet byte som ska skickas.

endPoint
IPEndPoint

Det EndPoint som representerar målet för data.

requestCallback
AsyncCallback

Ett AsyncCallback ombud som refererar till den metod som ska anropas när åtgärden är klar.

state
Object

Ett användardefinierat objekt som innehåller information om sändningsåtgärden. Det här objektet skickas till ombudet requestCallback när åtgärden är klar.

Returer

Ett IAsyncResult objekt som refererar till den asynkrona sändningen.

Exempel

I följande kodexempel används BeginSend för att asynkront skicka en serverbegäran.

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

Kommentarer

Den asynkrona BeginSend åtgärden måste slutföras genom att anropa EndSend metoden. Metoden anropas vanligtvis av ombudet requestCallback .

Den här metoden blockeras inte förrän åtgärden har slutförts. Om du vill blockera tills åtgärden är klar använder du en av Send metodöverlagringarna.

Detaljerad information om hur du använder den asynkrona programmeringsmodellen finns i Anropa synkrona metoder asynkront.

Gäller för

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

Skickar ett datagram till ett mål asynkront. Målet anges av värdnamnet och portnumret.

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

Parametrar

datagram
Byte[]

En Byte matris som innehåller de data som ska skickas.

bytes
Int32

Antalet byte som ska skickas.

hostname
String

Målvärden.

port
Int32

Målportnumret.

requestCallback
AsyncCallback

Ett AsyncCallback ombud som refererar till den metod som ska anropas när åtgärden är klar.

state
Object

Ett användardefinierat objekt som innehåller information om sändningsåtgärden. Det här objektet skickas till ombudet requestCallback när åtgärden är klar.

Returer

Ett IAsyncResult objekt som refererar till den asynkrona sändningen.

Exempel

I följande kodexempel används BeginSend för att asynkront skicka en serverbegäran.

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

Kommentarer

Den asynkrona BeginSend åtgärden måste slutföras genom att anropa EndSend metoden. Metoden anropas vanligtvis av ombudet requestCallback .

Den här metoden blockeras inte förrän åtgärden har slutförts. Om du vill blockera tills åtgärden är klar använder du en av Send metodöverlagringarna.

Detaljerad information om hur du använder den asynkrona programmeringsmodellen finns i Anropa synkrona metoder asynkront.

Gäller för