Giriş
Bu sınıfı kullanmak için şu satırı dahil ederiz.
Şöyle yaparız.
Şöyle yaparız
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Bu sınıfı kullanmak için şu satırı dahil ederiz.
System.Net.Sockets.UdpClient
Kullanım
Sunucu için şöyle yaparız
using System.Net;
using System.Net.Sockets;
using System.Text;
var udpClient = new UdpClient(9001);
var endpoints = new HashSet<IPEndPoint>();
try
{
while (true)
{
Log($"{DateTime.UtcNow:HH:mm:ss.fff}: Waiting to receive packet");
var packet = await udpClient.ReceiveAsync();
var buffer = packet.Buffer;
var clientEndpoint = packet.RemoteEndPoint;
endpoints.Add(clientEndpoint);
Log($"Received {buffer.Length} bytes from {clientEndpoint}:
{Encoding.UTF8.GetString(buffer)}");
foreach (var otherEndpoint in endpoints)
{
if (!otherEndpoint.Equals(clientEndpoint))
{
await udpClient.SendAsync(buffer, otherEndpoint);
}
}
}
}
catch (Exception e)
{
Log($"Failed: {e}");
}
void Log(string message) =>
Console.WriteLine($"{DateTime.UtcNow:HH:mm:ss.fff}: {message}");
İstemci için şöyle yaparız
sing System.Net.Sockets;
using System.Text;
Guid clientId = Guid.NewGuid();
var client = new UdpClient();
Log("Connecting UdpClient");
client.Connect("127.0.0.1", 9001);
await client.SendAsync(Encoding.UTF8.GetBytes($"Hello from {clientId}"));
await Task.Delay(TimeSpan.FromSeconds(15));
await client.SendAsync(Encoding.UTF8.GetBytes($"Goodbye from {clientId}"));
client.Close();
Log("UdpClient closed");
void Log(string message) =>
Console.WriteLine($"{DateTime.UtcNow:HH:mm:ss.fff}: {message}");
Constructor
UdpClient udpClient = new UdpClient(1024);
BeginReceive metoduŞöyle yaparız
udpClient.BeginReceive(ReceiveCallback, null);
void ReceiveCallback(IAsyncResult ar)
{
IPEndPoint ip = ...;
byte[] data = udpClient.EndReceive(ar, ref ip);
}
Close metoduŞöyle yaparız.
udpClient.Close();
Connect metoduŞöyle yaparız.
udpClient.Connect("a.b.c.d", 1024);
Send metodu
Şöyle yaparız.
byte[] messageBytes = ...;
udpClient.Send(messageBytes, messageBytes.Length);
Hiç yorum yok:
Yorum Gönder