一对多 pc上运行android客户端

本文探讨如何在PC上实现类似豌豆荚的功能,让PC客户端与多个Android设备进行实时通讯。通过adb命令和socket通信的两种方式进行了尝试。方式1仅能实现PC主动获取信息,无法主动上报;方式2中,Android作为server可以实现一对一通信,但一对多时存在连接问题。问题可能源于adb forward命令导致的连接限制。寻求解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在研究类似于 豌豆荚 的PC客户端,实验一对多并能和连接的每一个android机器实时通讯

在查阅了大量资料和尝试制作各种Demo程序测试之后,发现一些问题,大家一起讨论

实现方式1 只是用adb命令

这种方式就是直接发adb命令给android,获取想获取的文件,查看想查看的内容。缺点是不能实现android机器向客户端主动上报信息,只能客户端主动去轮询各个android机器

实现方式2 用socket通信,并结合adb命令

研究这种方式花了最久的时间,一般来讲TCP socket通信主要是两种方式

1 android作server ,PC客户端作client。

网上有大量的资料是这种方式实现的,c++ ,java的代码都有,关键是要用 adb forward tcp:xxx  tcp:xxx 这个命令把PC端口的所有数据映射到android机器上。这种方式在一台PC客户端与一台android连上之后可以进行实时通讯,但是只能实现一对一的通信,无法实现一对多(demo没实现),即使能实现一对多,第二台连上还是没连上的状态应该是假的,需要android机器回复应答才算成功。

2 android 作client ,PC客户端作server

同样要用 adb forward tcp:xxx  tcp:xxx 这个命令,这种方式无法连接,pc客户端端accept()一直在等待,android用socket(ip,port),connect()都无法连接上pc客户端。

主要原因是adb forward这个命令造成的。这个命令干了什么?我查到的资料貌似是这个命令在android端创建了服务等待PC端进行连接,多以android用socket(ip,port),connect()是无论如何都无法建立socket连接的


那到底类似 豌豆荚 的PC客户端 到底是如何实现数据实时上报的,望大神们指点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值