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();
        }

    }
}

results matching ""

    No results matching ""