UdpClient.BeginSend Methode

Definition

Sendet asynchron ein Datagramm an einen Remotehost.

Überlädt

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

Sendet asynchron ein Datagramm an einen Remotehost. Das Ziel wurde zuvor durch einen Anruf angegeben Connect.

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

Sendet asynchron ein Datagramm an ein Ziel. Das Ziel wird durch ein EndPoint.

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

Sendet asynchron ein Datagramm an ein Ziel. Das Ziel wird durch den Hostnamen und die Portnummer angegeben.

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

Sendet asynchron ein Datagramm an einen Remotehost. Das Ziel wurde zuvor durch einen Anruf angegeben 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

Parameter

datagram
Byte[]

Ein Byte Array, das die zu sendenden Daten enthält.

bytes
Int32

Die Anzahl der zu sendenden Bytes.

requestCallback
AsyncCallback

Ein AsyncCallback Delegat, der auf die Methode verweist, die aufgerufen werden soll, wenn der Vorgang abgeschlossen ist.

state
Object

Ein benutzerdefiniertes Objekt, das Informationen zum Sendevorgang enthält. Dieses Objekt wird an die requestCallback Stellvertretung übergeben, wenn der Vorgang abgeschlossen ist.

Gibt zurück

Ein IAsyncResult Objekt, das auf das asynchrone Senden verweist.

Beispiele

Im folgenden Codebeispiel wird BeginSend zum asynchronen Senden einer Serveranforderung verwendet.

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

Hinweise

Der asynchrone BeginSend Vorgang muss durch Aufrufen der EndSend Methode abgeschlossen werden. In der requestCallback Regel wird die Methode vom Delegaten aufgerufen.

Diese Methode wird erst blockiert, wenn der Vorgang abgeschlossen ist. Um zu blockieren, bis der Vorgang abgeschlossen ist, verwenden Sie eine der Send Methodenüberladungen.

Ausführliche Informationen zur Verwendung des asynchronen Programmiermodells finden Sie unter asynchrones Aufrufen synchroner Methoden.

Gilt für:

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

Sendet asynchron ein Datagramm an ein Ziel. Das Ziel wird durch ein 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

Parameter

datagram
Byte[]

Ein Byte Array, das die zu sendenden Daten enthält.

bytes
Int32

Die Anzahl der zu sendenden Bytes.

endPoint
IPEndPoint

Dies EndPoint stellt das Ziel für die Daten dar.

requestCallback
AsyncCallback

Ein AsyncCallback Delegat, der auf die Methode verweist, die aufgerufen werden soll, wenn der Vorgang abgeschlossen ist.

state
Object

Ein benutzerdefiniertes Objekt, das Informationen zum Sendevorgang enthält. Dieses Objekt wird an die requestCallback Stellvertretung übergeben, wenn der Vorgang abgeschlossen ist.

Gibt zurück

Ein IAsyncResult Objekt, das auf das asynchrone Senden verweist.

Beispiele

Im folgenden Codebeispiel wird BeginSend zum asynchronen Senden einer Serveranforderung verwendet.

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

Hinweise

Der asynchrone BeginSend Vorgang muss durch Aufrufen der EndSend Methode abgeschlossen werden. In der requestCallback Regel wird die Methode vom Delegaten aufgerufen.

Diese Methode wird erst blockiert, wenn der Vorgang abgeschlossen ist. Um zu blockieren, bis der Vorgang abgeschlossen ist, verwenden Sie eine der Send Methodenüberladungen.

Ausführliche Informationen zur Verwendung des asynchronen Programmiermodells finden Sie unter asynchrones Aufrufen synchroner Methoden.

Gilt für:

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

Sendet asynchron ein Datagramm an ein Ziel. Das Ziel wird durch den Hostnamen und die Portnummer angegeben.

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

Parameter

datagram
Byte[]

Ein Byte Array, das die zu sendenden Daten enthält.

bytes
Int32

Die Anzahl der zu sendenden Bytes.

hostname
String

Der Zielhost.

port
Int32

Die Zielportnummer.

requestCallback
AsyncCallback

Ein AsyncCallback Delegat, der auf die Methode verweist, die aufgerufen werden soll, wenn der Vorgang abgeschlossen ist.

state
Object

Ein benutzerdefiniertes Objekt, das Informationen zum Sendevorgang enthält. Dieses Objekt wird an die requestCallback Stellvertretung übergeben, wenn der Vorgang abgeschlossen ist.

Gibt zurück

Ein IAsyncResult Objekt, das auf das asynchrone Senden verweist.

Beispiele

Im folgenden Codebeispiel wird BeginSend zum asynchronen Senden einer Serveranforderung verwendet.

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

Hinweise

Der asynchrone BeginSend Vorgang muss durch Aufrufen der EndSend Methode abgeschlossen werden. In der requestCallback Regel wird die Methode vom Delegaten aufgerufen.

Diese Methode wird erst blockiert, wenn der Vorgang abgeschlossen ist. Um zu blockieren, bis der Vorgang abgeschlossen ist, verwenden Sie eine der Send Methodenüberladungen.

Ausführliche Informationen zur Verwendung des asynchronen Programmiermodells finden Sie unter asynchrones Aufrufen synchroner Methoden.

Gilt für: