UDP(User Datagram Protocol,用户数据报协议)是在互联网中常用的传输层协议,该协议提供了向另一用户程序发送的消息的最简便的协议机制。与TCP一样,其默认的下层协议是IP.UDP是面向操作的,不提供提交和复制保护,因此不能保证数据的可靠性传输。UDP一般用在可靠性较高的局域网中。

.NET 下可使用Socket 类编写基于UDP的网络程序,只要在创建Socket时将构造函数函数的第三个参数选为枚举值ProtocolType.Udp即可.此外,.NET的System.Net.Sockets命名空间下还有一个UdpClient类,可专门用于UDP的网络编程。-----摘自< C#.NET 框架高级编程技术案例教程  郭文夷等 P163>

第一种,使用Socket类

1  IPEndPoint ip = new IPEndPoint(IPAddress.Parse(txtIP.Text), int.Parse(txtPort.Text));
2             Socket  serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
3             serverSocket.Bind(ip);

第二种,使用UdpClient类

1  IPAddress address = IPAddress.Parse(txtLocalIp.Text);
2             int port = Int32.Parse(txtLocalPort.Text);
3             IPEndPoint endPoint = new IPEndPoint(address, port);
4             UdpClient udpClient = new UdpClient(endPoint);

-------------------------------------------------------------------这里是分割线-----------------------------------------------

本文主要采用第一种,基于Socket编写一个Udp发包程序。服务器端不断发包,客户端根据接收到的点数据在窗体上绘制点,效果如下所示:

基于Socket的UDP发包程序

 

一.服务器端

1.创建一个Socket对象,绑定服务器端Ip和端口号。

2.创建一个线程用户获取客户机的Ip和端口号。大致是这样的,客户机连接到服务器,同时发送一个"你好"的消息,服务器端这样就可以获取到客户机的Ip和端口。

 1   private void btnStart_Click(object sender, EventArgs e)
 2         {
 3             if (serverSocket != null)
 4             {
 5                 return;
 6             }
 7             IPEndPoint ip = new IPEndPoint(IPAddress.Parse(txtIP.Text), int.Parse(txtPort.Text));
 8             serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
 9             serverSocket.Bind(ip);
10 
11             AppendTextToTxtLog(string.Format("服务器端是{0},正在等待客户端的连接",ip.ToString()));
12             Thread thread = new Thread(ReceiveData);
13             thread.IsBackground = true;
14             thread.Start();
15 
16         }
View Code

相关文章:

  • 2021-10-14
  • 2021-07-27
  • 2021-07-10
  • 2021-08-16
  • 2021-11-07
  • 2021-09-30
猜你喜欢
  • 2021-12-11
  • 2021-12-17
  • 2022-12-23
  • 2022-12-23
  • 2022-01-08
  • 2021-04-03
相关资源
相似解决方案