Java网络编程(二)之UDP

      最后更新:2022-02-10 05:05

      UDP

      UDP发送数据

      构造方法

      相关方法

      发送数据的步骤

      UDP接收数据

      构造方法

      相关方法

      接收数据的步骤

      代码实现

      UDP通信程序练习

      案例需求

      代码实现

      UDP三种通讯方式

      UDP组播实现

      实现步骤

      代码实现

      UDP广播实现

      实现步骤

      UDP

      UDP协议是一种不可靠的网络协议,它在通信的两端各建立一个Socket对象,但是这两个Socket只是发送,接收数据的对象,因此对于基于UDP协议的通信双方而言,没有所谓的客户端和服务器的概念

      Java提供了DatagramSocket类作为基于UDP协议的Socket

      UDP发送数据

      构造方法

      方法名 说明
      DatagramSocket() 创建数据报套接字并将其绑定到本机地址上的任何可用端口
      DatagramPacket(byte[] buf,int len,InetAddress add,int port) 创建数据包,发送长度为len的数据包到指定主机的指定端口

      相关方法

      方法名 说明
      void send(DatagramPacket p) 发送数据报包
      void close() 关闭数据报套接字
      void receive(DatagramPacket p) 从此套接字接受数据报包

      发送数据的步骤

      UDP接收数据

      构造方法

      方法名 说明
      DatagramPacket(byte[] buf, int len) 创建一个DatagramPacket用于接收长度为len的数据包

      相关方法

      方法名 说明
      byte[] getData() 返回数据缓冲区
      int getLength() 返回要发送的数据的长度或接收的数据的长度

      接收数据的步骤

      • 创建接收端的Socket对象(DatagramSocket)

      • 创建一个数据包,用于接收数据

      • 调用DatagramSocket对象的方法接收数据

      • 解析数据包,并把数据在控制台显示

      • 关闭接收端

      代码实现

      接收端ServerDemo01

      发送端ClientDemo01

      注意一定要先运行ServerDemo01,然后再运行ClientDemo01,在ServerDemo01的控制台打印UDP传输的数据。

      UDP通信程序练习

      案例需求

      UDP发送数据:数据来自于键盘录入,直到输入的数据是886,发送数据结束

      UDP接收数据:因为接收端不知道发送端什么时候停止发送,故采用死循环接收

      代码实现

      接收端ServerDemo02

      发送端ClientDemo02

      UDP三种通讯方式

      • 单播

        单播用于两个主机之间的端对端通信(点对点传输)

      • 组播

        组播用于对一组特定的主机进行通信

      • 广播

        广播用于一个主机对整个局域网上所有主机上的数据通信

      UDP组播实现

      组播的发送端跟单播是类似的,区别在于接收端!

      实现步骤

      • 发送端

      1. 创建发送端的Socket对象(DatagramSocket)
      2. 创建数据,并把数据打包(DatagramPacket)
      3. 调用DatagramSocket对象的方法发送数据(在单播中,这里是发给指定IP的电脑,但是在组播当中,这里是发给组播地址)
      4. 释放资源
      • 接收端

      1. 创建接收端Socket对象(MulticastSocket)
      2. 创建一个箱子,用于接收数据
      3. 把当前计算机绑定一个组播地址
      4. 将数据接收到箱子中
      5. 解析数据包,并打印数据
      6. 释放资源

      代码实现

      接收端

      发送端

      UDP广播实现

      实现步骤

      发送端

      • 创建发送端Socket对象(DatagramSocket)
      • 创建存储数据的箱子,将广播地址封装进去
      • 发送数据
      • 释放资源

      接收端

      • 创建接收端的Socket对象(DatagramSocket)
      • 创建一个数据包,用于接收数据
      • 调用DatagramSocket对象的方法接收数据
      • 解析数据包,并把数据在控制台显示
      • 关闭接收端

      在广播中,地址都是255.255.255.255

      发送端

      接收端

      本文由 在线网速测试 整理编辑,转载请注明出处。

          热门文章

          文章分类