服务器端
- static void Main(string[] args)
- {
- //1.
- Socket udpserver=new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
- //2.
- IPAddress ipaddress = IPAddress.Parse("127.0.0.1");
- EndPoint endpoint = new IPEndPoint(ipaddress, 5000);
- udpserver.Bind(endpoint);
- //3.不用监听,直接接收
- EndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); //注
- byte[] data = new byte[1024];
- int length = udpserver.ReceiverFrom(data, ref remoteEndPoint); //注
- string message = Encoding.UTF8.GetString(data, 0, length);
- Console.WriteLine("服务器接收到客户端发来的消息:"+message);
- udpserver.Close();
- Console.ReadKey();
- }
客户端
- static void Main(string[] args)
- {
- //1.
- Socket udpclient=new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
- //2.
- IPAddress ipaddress = IPAddress.Parse("127.0.0.1");
- EndPoint serverpoint = new IPEndPoint(ipaddress, 5000);
- string message = Console.ReadLine();
- byte[] data = Encoding.UTF8.GetBytes(message);
- udpclient.SendTo(data, serverpoint);
- Console.ReadKey();
- }
注意:以上只能传递一次信息,若要传递多次,则需要使用线程!
服务器端
- private static Socket udpserver;
- static void Main(string[] args)
- {
- //1.
- udpserver=new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
- //2.
- IPAddress ipaddress = IPAddress.Parse("127.0.0.1");
- EndPoint endpoint = new IPEndPoint(ipaddress, 5000);
- udpserver.Bind(endpoint);
- //3.新建线程
- new Thread(ReceiveMessage).Start(); //调用方法,开启线程.(如下是设为后台线程的方法)
- //Thread(ReceiveMessage){IsBackground=true}.Start()
- Console.ReadKey();
- }
-
- static void ReceiveMessage()
- {
- while(true)
- {
- EndPoint remoteEndPoint = new IPEndPoint(IPAddress.Any, 0); //注
- byte[] data = new byte[1024];
- int length = udpserver.ReceiveFrom(data, ref remoteEndPoint); //注
- string message = Encoding.UTF8.GetString(data, 0, length);
- Console.WriteLine("服务器接收到客户端发来的消息:"+message);
- }
- }
客户端
- static void Main(string[] args)
- {
- //1.
- Socket udpclient=new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
- //2.
- while(true)
- {
- IPAddress ipaddress = IPAddress.Parse("127.0.0.1");
- EndPoint serverpoint = new IPEndPoint(ipaddress, 5000);
- string message = Console.ReadLine();
- byte[] data = Encoding.UTF8.GetBytes(message);
- udpclient.SendTo(data, serverpoint);
- }
- udpclient.Close();
- Console.ReadKey();
- }