同wifi环境下android设备自动获取socket服务端的ip地址和端口号的方法-UDP广播

一、最近做项目,需要使用socket做一个常连接,实现实时通信,但是需求是在同一个wifi环境下,ip地址是动态获取的,这样就造成了服务端地址的不确定性。解决这个问题的关键就是如何拿到服务端的Ip。我们可以这样想,服务端可以在获得ip以后通过一种方式把这个地址告诉客户端。这样我们就注意到UDP多点广播是一个好的解决方法。

要使用多点广播,需要让一个数据报标有一组目标主机地址,其思想是设置一组特殊网络地址作为多点广播地址,第一个多点广播地址都被看作是一个组,当客户端需要发送、接收广播信息时,加入该组就可以了。IP协议为多点广播提供这批特殊的IP地址,这些IP地址范围是224.0.0.0---239.255.255.255,其中224.0.0.0为系统自用。在java中需要用到MulticastSocket这个类。

其主要思路就是虚拟一个网络组,只要注册加入这个组的客户端都可以接收到广播者发送的数据。

1、创建一个MulticastSocket类,端口号自定义,但是每个接收者的端口号要与这个一致

mSocket = new MulticastSocket(BROADCAST_PORT);

2、虚拟一个多点广播地址,224.0.0.1--239.255.255.255任选。

address<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值