UdpClient.BeginSend Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
- 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
- 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
- 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.