如何获得并配对连接在同一Wifi网段上的其他手机

本文介绍了如何利用Android系统通过UDP广播实现连接在同一Wifi网段上的手机之间的配对。首先,数据接收方启动广播线程,发送自身名称,而数据发送方监听广播并获取IP地址。接着,双方进行TCP连接请求,接收方根据用户选择决定是否接受连接。如果同意,便开始数据传输;若拒绝,则发送拒绝标志。
摘要由CSDN通过智能技术生成
 Android系统有没有提供一个让你方便的获取连接在同一Wifi网段上的其他用户的API呢??答案是否定的,那么Wifi版的飞鸽传书是如何实现这个功能的呢??之前在开发这个项目时,我上网找了很久,也只搜索到mars老师那个视频的搜索Wifi热点的例子。所以,现在发上来给大家分享一下。我个人的理解是“三次握手”。

1、首先,数据接收方Receiver启动广播线程,通过某个特点的端口UDP_BOADCASTPORT,将自己手机本身的名称广播出去,每秒广播一次,代码如下:

// 构造发送数据报 把自己的名字发送出去
     byte[] data = username.getBytes();
     DatagramPacket outgoing = new DatagramPacket(data, data.length, InetAddress.getByName("255.255.255.255"), UDP_BOADCASTPORT);

同时,数据发送方Sender启动监听广播的线程,通过上述的端口UDP_BOADCASTPORT获得接收方Receiver广播出来的用户名,并通过获得的数据包得到Receiver的IP地址,并以列表的形式显示,供Sender选择。代码如下:

// 构造接收数据报
     DatagramPacket incomming = new DatagramPacket(buffer, buffer.length);
     datasocket.receive(incomming);// 接收数据报
   
2、接下来,接收方Receiver在启动广播线程的同时还应该启动获取发送方S
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值