Netty的UDP及广播实现

时间:2025-04-15 07:48:12

单播(Unicast):

客户端和服务器点到点,单个的发送者和单个的接收着之间通过网络点到点通信;从客户端和服务器之间建立一个单独的数据通道,从一台服务器发送的每个数据包只能传给一个客户机,这种方式叫做单播。Netty里的TCP链接面向这种链接方式。在发送者和每一接收者之间实现点对点网络连接

组播:(Multicast)

在发送者和每一接收者之间实现点对多点网络连接。

广播(Broadcast)传输:广播都是限制在局域网中的,是指在IP子网内广播数据包,所有子网内的主机都将收到这些数据包。在使用TCP/IP协议的网络中,主机标识段Host Id全为1的IP address表示广播地址,例如在192.168.网段其广播地址为192.168.1.255,当发出一个目的地址为192.168.1.255的数据包时,它将被分发给该网段上的所有计算机。

传输层两个协议TCP和UDP

TCP(Transmission Control Protocol ,传输控制协议)

UDP (User Datagram Protocol, 用户数据报协议)

区别不做比较

如下广播用UDP实现

import ;
import ;
import ;

public void sendMessage(int port,String address) throws Exception{
      // 创建发送方的套接字,IP为发送方广播地址(如192.168.1.255,端口号随机

     DatagramSocket sendSocket = new DatagramSocket();

   // 确定要发送的消息
     String msg = “添写要发送的信息”;
     try {
            // 由于数据报的数据是以字符数组传的形式存  储的,所以传转数据
           byte[] buf = ("UTF-8");
        // 确定发送方的IP地址及端口号,地址为本地网络
         InetAddress ip = InetAddress.getByName(address);
      // 创建发送类型的数据报
      DatagramPacket sendPacket =new DatagramPacket(buf,,ip,port);
      // 通过套接字发送数据
      (sendPacket);
      ();
      }catch (Exception e){
         ();
  }