疯狂java UDP协议的网络通信

UDP协议的网络通信


   TCP协议:基于虚拟链路的通信协议,协议是【可靠】。
            A节点发送数据给B节点之后,B节点需要向A节点发送确认信息
            如果A节点没有收到B节点的确认新,A节点会重发之前的信息。
           【性能较低】。


   UDP协议:无需建立虚拟链路。协议是不可靠的。
            A节点以DatagramSocket发送数据报,数据报携带数据。
            数据报上还有目标地址,大部分情况下,数据报可以抵达目的。


            但在有些情况下,数据报可能会丢失,丢失了也不管。






DatagramSocket与DatagramPacket


    DatagramSocket:相当于“码头”,发送、接收【数据报】。
    DatagramPacket:代表【数据报】。


    发送的一端:
       (1) 先创建“码头”(DatagramSocket)
       (2) 创建有数据、有目标地址(IP和端口)的数据报。
       (3) 发送。


    接收的一端:
       (1) 先创建有固定IP、固定端口的“码头”(DatagramSocket)
       (2) 创建空的数据报。
       (3) 接收。






MulticastSocket
     广播Socket - 也是一个“码头”。
     因此也需要与DategramPacket结合使用。


     它多了一个setTimeToLive(int ttl)方法。
     TTL是控制数据可以跨过多少网段。
     -当ttl为0,说明数据报只能停留在本机。
     -当ttl为1,说明数据报只能停留在当前局域网。
     -当ttl为32,说明数据报只能停留在本站点的网络
     -当ttl为64,说明数据报只能停留在本地区
     -当ttl为128,说明数据报只能停留在本大洲
     -当ttl为255,说明数据报到达全球。


    发送:
          与DatagramSocket的发送方法是完全一样的。
            只是数据报的地址是一个【特殊的广播地址】。


    接受:


         (1)要先调用joinGroup(InetAddress mcastaddr)加入指定广播地址。
         (2)不断接收即可。


            
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值