UdpClient.BeginSend Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Odešle datagram vzdálenému hostiteli asynchronně.
Přetížení
BeginSend(Byte[], Int32, String, Int32, AsyncCallback, Object) |
Odešle datagram do cíle asynchronně. Cíl je určen názvem hostitele a číslem portu. |
BeginSend(Byte[], Int32, IPEndPoint, AsyncCallback, Object) |
Odešle datagram do cíle asynchronně. Cíl je určen parametrem EndPoint. |
BeginSend(Byte[], Int32, AsyncCallback, Object) |
Odešle datagram vzdálenému hostiteli asynchronně. Cíl byl dříve určen voláním Connectmetody . |
BeginSend(Byte[], Int32, String, Int32, AsyncCallback, Object)
- Zdroj:
- UDPClient.cs
- Zdroj:
- UDPClient.cs
- Zdroj:
- UDPClient.cs
Odešle datagram do cíle asynchronně. Cíl je určen názvem hostitele a číslem portu.
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
Parametry
- bytes
- Int32
Počet bajtů k odeslání.
- hostname
- String
Cílový hostitel.
- port
- Int32
Číslo cílového portu.
- requestCallback
- AsyncCallback
Delegát AsyncCallback , který odkazuje na metodu vyvolání po dokončení operace.
- state
- Object
Uživatelem definovaný objekt, který obsahuje informace o operaci odeslání. Tento objekt je po dokončení operace předán requestCallback
delegátu.
Návraty
Objekt IAsyncResult , který odkazuje na asynchronní odesílání.
Příklady
Následující příklad kódu používá BeginSend k asynchronnímu odeslání požadavku serveru.
public:
static bool isMessageSent;
static void SendCallback(IAsyncResult^ asyncResult)
{
UdpClient^ udpClient = (UdpClient^)asyncResult->AsyncState;
Console::WriteLine("number of bytes sent: {0}",
udpClient->EndSend(asyncResult));
isMessageSent = true;
}
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;
}
public:
static void SendMessage3(String^ server, String^ message)
{
// create the udp socket
UdpClient^ udpClient = gcnew UdpClient();
array<Byte>^ sendBytes = Encoding::ASCII->GetBytes(message);
// send the message
// the destination is defined by the server name and port
udpClient->BeginSend(sendBytes, sendBytes->Length, server, listenPort,
gcnew AsyncCallback(SendCallback), udpClient);
// Do some work while we wait for the send to complete. For
// this example, we'll just sleep
while (!isMessageSent)
{
Thread::Sleep(100);
}
}
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);
}
}
Poznámky
Asynchronní BeginSend operace musí být dokončena voláním EndSend metody . Obvykle je metoda vyvolána delegátem requestCallback
.
Tato metoda neblokuje, dokud operace není dokončena. Chcete-li blokovat, dokud se operace dokončí, použijte jedno z Send přetížení metody.
Podrobné informace o použití asynchronního programovacího modelu najdete v tématu Asynchronní volání synchronních metod.
Platí pro
BeginSend(Byte[], Int32, IPEndPoint, AsyncCallback, Object)
- Zdroj:
- UDPClient.cs
- Zdroj:
- UDPClient.cs
- Zdroj:
- UDPClient.cs
Odešle datagram do cíle asynchronně. Cíl je určen parametrem 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
Parametry
- bytes
- Int32
Počet bajtů k odeslání.
- endPoint
- IPEndPoint
Hodnota EndPoint , která představuje cíl dat.
- requestCallback
- AsyncCallback
Delegát AsyncCallback , který odkazuje na metodu vyvolání po dokončení operace.
- state
- Object
Uživatelem definovaný objekt, který obsahuje informace o operaci odeslání. Tento objekt je po dokončení operace předán requestCallback
delegátu.
Návraty
Objekt IAsyncResult , který odkazuje na asynchronní odesílání.
Příklady
Následující příklad kódu používá BeginSend k asynchronnímu odeslání požadavku serveru.
public:
static bool isMessageSent;
static void SendCallback(IAsyncResult^ asyncResult)
{
UdpClient^ udpClient = (UdpClient^)asyncResult->AsyncState;
Console::WriteLine("number of bytes sent: {0}",
udpClient->EndSend(asyncResult));
isMessageSent = true;
}
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;
}
public:
static void SendMessage2(String^ server, String^ message)
{
// create the udp socket
UdpClient^ udpClient = gcnew UdpClient();
array<Byte>^ sendBytes = Encoding::ASCII->GetBytes(message);
// resolve the server name
IPHostEntry^ resolvedServer = Dns::GetHostEntry(server);
IPEndPoint^ ipEndPoint =
gcnew IPEndPoint(resolvedServer->AddressList[0], listenPort);
// send the message
// the destination is defined by the IPEndPoint
udpClient->BeginSend(sendBytes, sendBytes->Length, ipEndPoint,
gcnew AsyncCallback(SendCallback), udpClient);
// Do some work while we wait for the send to complete. For
// this example, we'll just sleep
while (!isMessageSent)
{
Thread::Sleep(100);
}
}
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);
}
}
Poznámky
Asynchronní BeginSend operace musí být dokončena voláním EndSend metody . Obvykle je metoda vyvolána delegátem requestCallback
.
Tato metoda neblokuje, dokud operace není dokončena. Chcete-li blokovat, dokud se operace dokončí, použijte jedno z Send přetížení metody.
Podrobné informace o použití asynchronního programovacího modelu najdete v tématu Asynchronní volání synchronních metod.
Platí pro
BeginSend(Byte[], Int32, AsyncCallback, Object)
- Zdroj:
- UDPClient.cs
- Zdroj:
- UDPClient.cs
- Zdroj:
- UDPClient.cs
Odešle datagram vzdálenému hostiteli asynchronně. Cíl byl dříve určen voláním Connectmetody .
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
Parametry
- bytes
- Int32
Počet bajtů k odeslání.
- requestCallback
- AsyncCallback
Delegát AsyncCallback , který odkazuje na metodu vyvolání po dokončení operace.
- state
- Object
Uživatelem definovaný objekt, který obsahuje informace o operaci odeslání. Tento objekt je po dokončení operace předán requestCallback
delegátu.
Návraty
Objekt IAsyncResult , který odkazuje na asynchronní odesílání.
Příklady
Následující příklad kódu používá BeginSend k asynchronnímu odeslání požadavku serveru.
public:
static bool isMessageSent;
static void SendCallback(IAsyncResult^ asyncResult)
{
UdpClient^ udpClient = (UdpClient^)asyncResult->AsyncState;
Console::WriteLine("number of bytes sent: {0}",
udpClient->EndSend(asyncResult));
isMessageSent = true;
}
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;
}
public:
static void SendMessage1(String^ server, String^ message)
{
// create the udp socket
UdpClient^ udpClient = gcnew UdpClient();
udpClient->Connect(server, listenPort);
array<Byte>^ sendBytes = Encoding::ASCII->GetBytes(message);
// send the message
// the destination is defined by the call to .Connect()
udpClient->BeginSend(sendBytes, sendBytes->Length,
gcnew AsyncCallback(SendCallback), udpClient);
// Do some work while we wait for the send to complete. For
// this example, we'll just sleep
while (!isMessageSent)
{
Thread::Sleep(100);
}
}
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);
}
}
Poznámky
Asynchronní BeginSend operace musí být dokončena voláním EndSend metody . Obvykle je metoda vyvolána delegátem requestCallback
.
Tato metoda neblokuje, dokud se operace nedokoní. Chcete-li blokovat, dokud se operace dokončí, použijte jedno z Send přetížení metody.
Podrobné informace o použití asynchronního programovacího modelu najdete v tématu Asynchronní volání synchronních metod.