Windows PC和安卓Socket通信,附完整Demo。

3 篇文章 2 订阅

前言:由于要实现将安卓相机的预览数据在PC上处理,所以想到的就是通过socket方式进行通信,PC端采用c#实现。实际测试发现要想高速传输还是有难度,即使用千兆网,目前效果还是不理想。每帧1.5MB的预览数据在千兆网下,每秒只能传送30帧左右,也就是说只能传一种预览数据,要想传多个那么每种数据的帧率就达不到30帧。

        为了最大程度提高传输速度,可使用网线将PC和安卓设备直接相连。然后在PC上设置静态以太网IP地址,例如,IP设成192.168.1.1,掩码255.255.255.0,网关192.168.1.1;安卓端设置以太网为静态IP,IP地址设成192.168.1.2,掩码255.255.255.0,网关192.168.1.1。最后在PC端程序将IP地址改成设备端IP地址即可通信,经验证使用超五类网线连接PC和安卓设备,且PC和安卓设备均支持千兆以太网情况下,数据传输方式为不间断持续传输(每一组数据之间无时间间隔),传输速率能稳定在50MB/s。

以下是最简单的PC和安卓进行socket通信的demo。

一、PC端socket通信软件demo,见我的码云代码:

使用Visual studio2019开发。

SocketWithAndroid: 使用c#语言的桌面端程序,采用socket和安卓通信,支持直接用usb连接,或者局域网通信。结合https://gitee.com/may-gemini/AndroidSocket安卓端代码即可测试。测试时先打开安卓,再打开pc端软件,然后连接。

二、安卓端socket通信app demo,见我的码云代码:

使用Android studio 4.2.1开发

AndroidSocket: 安卓socket和windows通信示例代码,结合 https://gitee.com/may-gemini/SocketWithAndroid PC端工程,可实现pc和安卓通过USB或局域网通信。测试时先打开安卓,再打开pc端软件,然后连接。

以上软件配合使用即可实现PC和安卓通信。

在安卓端发送数据到远端时,不要使用多线程去发送数据,否则接收端收到的数据会错乱,尤其是持续发送数据时。只能在单一子线程中去发送,切记。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值