Netty的UDP及广播实现

单播(Unicast):

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

组播:(Multicast)

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

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

传输层两个协议TCP和UDP

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

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

区别不做比较

如下广播用UDP实现

import java.net.InetAddress;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

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

     DatagramSocket sendSocket = new DatagramSocket();

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值