UdpClient.BeginSend Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengirim datagram ke host jarak jauh secara asinkron.
Overload
BeginSend(Byte[], Int32, String, Int32, AsyncCallback, Object) |
Mengirim datagram ke tujuan secara asinkron. Tujuan ditentukan oleh nama host dan nomor port. |
BeginSend(Byte[], Int32, IPEndPoint, AsyncCallback, Object) |
Mengirim datagram ke tujuan secara asinkron. Tujuan ditentukan oleh EndPoint. |
BeginSend(Byte[], Int32, AsyncCallback, Object) |
Mengirim datagram ke host jarak jauh secara asinkron. Tujuan ditentukan sebelumnya oleh panggilan ke Connect. |
BeginSend(Byte[], Int32, String, Int32, AsyncCallback, Object)
- Sumber:
- UDPClient.cs
- Sumber:
- UDPClient.cs
- Sumber:
- UDPClient.cs
Mengirim datagram ke tujuan secara asinkron. Tujuan ditentukan oleh nama host dan nomor port.
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
Parameter
- bytes
- Int32
Jumlah byte yang akan dikirim.
- hostname
- String
Host tujuan.
- port
- Int32
Nomor port tujuan.
- requestCallback
- AsyncCallback
Delegasi AsyncCallback yang mereferensikan metode untuk dipanggil saat operasi selesai.
- state
- Object
Objek yang ditentukan pengguna yang berisi informasi tentang operasi pengiriman. Objek ini diteruskan ke requestCallback
delegasi ketika operasi selesai.
Mengembalikan
Objek IAsyncResult yang mereferensikan pengiriman asinkron.
Contoh
Contoh kode berikut menggunakan BeginSend untuk mengirim permintaan server secara asinkron.
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);
}
}
Keterangan
Operasi asinkron BeginSend harus diselesaikan dengan memanggil EndSend metode . Biasanya, metode ini dipanggil oleh requestCallback
delegasi.
Metode ini tidak memblokir sampai operasi selesai. Untuk memblokir hingga operasi selesai, gunakan salah Send satu metode kelebihan beban.
Untuk informasi terperinci tentang menggunakan model pemrograman asinkron, lihat Memanggil Metode Sinkron Secara Asinkron.
Berlaku untuk
BeginSend(Byte[], Int32, IPEndPoint, AsyncCallback, Object)
- Sumber:
- UDPClient.cs
- Sumber:
- UDPClient.cs
- Sumber:
- UDPClient.cs
Mengirim datagram ke tujuan secara asinkron. Tujuan ditentukan oleh 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
Parameter
- bytes
- Int32
Jumlah byte yang akan dikirim.
- endPoint
- IPEndPoint
EndPoint yang mewakili tujuan untuk data.
- requestCallback
- AsyncCallback
Delegasi AsyncCallback yang mereferensikan metode untuk dipanggil saat operasi selesai.
- state
- Object
Objek yang ditentukan pengguna yang berisi informasi tentang operasi pengiriman. Objek ini diteruskan ke requestCallback
delegasi ketika operasi selesai.
Mengembalikan
Objek IAsyncResult yang mereferensikan pengiriman asinkron.
Contoh
Contoh kode berikut menggunakan BeginSend untuk mengirim permintaan server secara asinkron.
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);
}
}
Keterangan
Operasi asinkron BeginSend harus diselesaikan dengan memanggil EndSend metode . Biasanya, metode ini dipanggil oleh requestCallback
delegasi.
Metode ini tidak memblokir sampai operasi selesai. Untuk memblokir hingga operasi selesai, gunakan salah Send satu metode kelebihan beban.
Untuk informasi terperinci tentang menggunakan model pemrograman asinkron, lihat Memanggil Metode Sinkron Secara Asinkron.
Berlaku untuk
BeginSend(Byte[], Int32, AsyncCallback, Object)
- Sumber:
- UDPClient.cs
- Sumber:
- UDPClient.cs
- Sumber:
- UDPClient.cs
Mengirim datagram ke host jarak jauh secara asinkron. Tujuan ditentukan sebelumnya oleh panggilan ke 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);
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
- bytes
- Int32
Jumlah byte yang akan dikirim.
- requestCallback
- AsyncCallback
Delegasi AsyncCallback yang mereferensikan metode untuk dipanggil saat operasi selesai.
- state
- Object
Objek yang ditentukan pengguna yang berisi informasi tentang operasi pengiriman. Objek ini diteruskan ke requestCallback
delegasi ketika operasi selesai.
Mengembalikan
Objek IAsyncResult yang mereferensikan pengiriman asinkron.
Contoh
Contoh kode berikut menggunakan BeginSend untuk mengirim permintaan server secara asinkron.
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);
}
}
Keterangan
Operasi asinkron BeginSend harus diselesaikan dengan memanggil EndSend metode . Biasanya, metode ini dipanggil oleh requestCallback
delegasi.
Metode ini tidak memblokir sampai operasi selesai. Untuk memblokir hingga operasi selesai, gunakan salah Send satu metode kelebihan beban.
Untuk informasi terperinci tentang menggunakan model pemrograman asinkron, lihat Memanggil Metode Sinkron Secara Asinkron.