UdpClient
UdpClient 类提供了一些简单的方法,用于在阻止同步模式下发送和接收无连接 UDP 数据报。因为 UDP 是无连接传输协议,所以不需要在发送和接收数据前建立远程主机连接。但您可以选择使用下面两种方法之一来建立默认远程主机:
使用远程主机名和端口号作为参数创建 UdpClient 类的实例。
创建 UdpClient 类的实例,然后调用 Connect 方法。
可以使用在 UdpClient 中提供的任何一种发送方法将数据发送到远程设备。使用 Receive 方法可以从远程主机接收数据。
UdpClient 方法还允许发送和接收多路广播数据报。使用 JoinMulticastGroup 方法可以将 UdpClient 预订给多路广播组。使用 DropMulticastGroup 方法可以从多路广播组中取消对 UdpClient 的预订。
服务端
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace ServerWithUDP
{
class MainClass
{
public static void Main (string[] args)
{
UdpClient client = new UdpClient (new IPEndPoint (IPAddress.Parse ("192.168.1.201"), 7788));
IPEndPoint endPoint = new IPEndPoint (IPAddress.Any, 0);
while (true) {
IPEndPoint endPoint = new IPEndPoint (IPAddress.Any, 0);
byte[] data = client.Receive (ref endPoint);
string message = Encoding.UTF8.GetString (data, 0, data.Length);
Console.WriteLine ("收到的消息为:" + message);
}
client.Close ();
Console.ReadKey ();
}
}
}
客户端
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace ClientWithUDP
{
class MainClass
{
public static void Main (string[] args)
{
UdpClient client = new UdpClient ();
while (true) {
string message = Console.ReadLine ();
byte[] data = Encoding.UTF8.GetBytes (message);
client.Send (data, data.Length, new IPEndPoint(IPAddress.Parse("192.168.1.201"),7788));
}
client.Close ();
Console.ReadKey();
}
}
}