UdpClient.BeginSend Methode

Definitie

Verzendt een datagram asynchroon naar een externe host.

Overloads

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

Verzendt een datagram asynchroon naar een externe host. De bestemming is eerder opgegeven door een aanroep naar Connect.

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

Verzendt een datagram asynchroon naar een bestemming. De bestemming wordt opgegeven door een EndPoint.

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

Verzendt een datagram asynchroon naar een bestemming. De bestemming wordt opgegeven door de hostnaam en het poortnummer.

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

Verzendt een datagram asynchroon naar een externe host. De bestemming is eerder opgegeven door een aanroep naar 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

Parameters

datagram
Byte[]

Een Byte matrix die de gegevens bevat die moeten worden verzonden.

bytes
Int32

Het aantal te verzenden bytes.

requestCallback
AsyncCallback

Een AsyncCallback gemachtigde die verwijst naar de methode die moet worden aangeroepen wanneer de bewerking is voltooid.

state
Object

Een door de gebruiker gedefinieerd object met informatie over de verzendbewerking. Dit object wordt doorgegeven aan de requestCallback gemachtigde wanneer de bewerking is voltooid.

Retouren

Een IAsyncResult object dat verwijst naar de asynchrone verzend.

Voorbeelden

In het volgende codevoorbeeld wordt BeginSend een serveraanvraag asynchroon verzonden.

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

Opmerkingen

De asynchrone BeginSend bewerking moet worden voltooid door de EndSend methode aan te roepen. Normaal gesproken wordt de methode aangeroepen door de requestCallback gemachtigde.

Deze methode wordt pas geblokkeerd als de bewerking is voltooid. Als u wilt blokkeren totdat de bewerking is voltooid, gebruikt u een van de overbelastingen van de Send methode.

Zie Synchrone methoden asynchroon aanroepen voor gedetailleerde informatie over het gebruik van het asynchrone programmeermodel.

Van toepassing op

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

Verzendt een datagram asynchroon naar een bestemming. De bestemming wordt opgegeven door een 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

Parameters

datagram
Byte[]

Een Byte matrix die de gegevens bevat die moeten worden verzonden.

bytes
Int32

Het aantal te verzenden bytes.

endPoint
IPEndPoint

De EndPoint bestemming voor de gegevens.

requestCallback
AsyncCallback

Een AsyncCallback gemachtigde die verwijst naar de methode die moet worden aangeroepen wanneer de bewerking is voltooid.

state
Object

Een door de gebruiker gedefinieerd object met informatie over de verzendbewerking. Dit object wordt doorgegeven aan de requestCallback gemachtigde wanneer de bewerking is voltooid.

Retouren

Een IAsyncResult object dat verwijst naar de asynchrone verzend.

Voorbeelden

In het volgende codevoorbeeld wordt BeginSend een serveraanvraag asynchroon verzonden.

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

Opmerkingen

De asynchrone BeginSend bewerking moet worden voltooid door de EndSend methode aan te roepen. Normaal gesproken wordt de methode aangeroepen door de requestCallback gemachtigde.

Deze methode wordt pas geblokkeerd als de bewerking is voltooid. Als u wilt blokkeren totdat de bewerking is voltooid, gebruikt u een van de overbelastingen van de Send methode.

Zie Synchrone methoden asynchroon aanroepen voor gedetailleerde informatie over het gebruik van het asynchrone programmeermodel.

Van toepassing op

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

Verzendt een datagram asynchroon naar een bestemming. De bestemming wordt opgegeven door de hostnaam en het poortnummer.

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

Parameters

datagram
Byte[]

Een Byte matrix die de gegevens bevat die moeten worden verzonden.

bytes
Int32

Het aantal te verzenden bytes.

hostname
String

De doelhost.

port
Int32

Het poortnummer van het doel.

requestCallback
AsyncCallback

Een AsyncCallback gemachtigde die verwijst naar de methode die moet worden aangeroepen wanneer de bewerking is voltooid.

state
Object

Een door de gebruiker gedefinieerd object met informatie over de verzendbewerking. Dit object wordt doorgegeven aan de requestCallback gemachtigde wanneer de bewerking is voltooid.

Retouren

Een IAsyncResult object dat verwijst naar de asynchrone verzend.

Voorbeelden

In het volgende codevoorbeeld wordt BeginSend een serveraanvraag asynchroon verzonden.

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

Opmerkingen

De asynchrone BeginSend bewerking moet worden voltooid door de EndSend methode aan te roepen. Normaal gesproken wordt de methode aangeroepen door de requestCallback gemachtigde.

Deze methode wordt pas geblokkeerd als de bewerking is voltooid. Als u wilt blokkeren totdat de bewerking is voltooid, gebruikt u een van de overbelastingen van de Send methode.

Zie Synchrone methoden asynchroon aanroepen voor gedetailleerde informatie over het gebruik van het asynchrone programmeermodel.

Van toepassing op