美文网首页
遥控器和手机通信

遥控器和手机通信

作者: 黄花菜先生 | 来源:发表于2018-04-26 20:50 被阅读136次
遥控器.png

原理

如果没有遥控器,APP和硬件直接通信,这个很简单。APP做为客户端,硬件做为服务端,硬件提供一个访问的IP地址,然后在提供几个服务的端口,直接使用CocoaAsyncSocket库,建立socket通信就OK。

但是现在中间加了一个遥控器就麻烦了,APP与硬件之间的所有通信都需要遥控器转发才能完成。

  1. APP初始化1个serverSocket,一个监听端口7088
  2. 遥控器连接上USB线之后,主动连接该端口,建立TCP连接,APP和遥控器之间的通信完全走该通道

TCP通信

遥控器上使用的usb工具,只能实现从遥控器到手机的tcp连接,不能手机主动建立连接。因此只能让遥控器做客户端,让手机APP做服务端,APP监听一个固定的端口,在USB连接成功之后,由遥控器主动去连接APP。

HTTP通信

  1. APP初始化1个serverSocket,监听端口7091

  2. APP发送HTTP请求全部发送到APP监听的7091端口这个本地服务器

     http://127.0.0.1:7091/internal/thumbnails/video/1_thumb.jpg
    
  3. 7091serversocket收到数据后,在data前面加8个字节的头,头里包括80端口,并且保存客户端socket

  4. 把data交给7088的serversocket,由7088的的serversocket发送给遥控器

  5. 遥控器收到硬件的下行后,转发给7088的serversocket,从头数据中的type=0,判断出该数据是http数据

  6. 把数据发送给之前保存的客户端socket,客户端socket读取数据,传送给Http

  7. 收到遥控器指令后,销毁客户端socket

相关文章

网友评论

      本文标题:遥控器和手机通信

      本文链接:https://www.haomeiwen.com/subject/phamlftx.html