本周继续进行智慧办公室项目的网络环境搭建,主要完成的功能有:
1.读取文件信息,写入socket发送到安卓客户端
2.接收安卓客户端的灯光控制信息,写入文件储存,然后将新的状态信息返回给安卓客户端用于更新UI
3.解决了socket接收到的字符串数组内存泄露bug
智慧办公室的项目接手到现在,本来我是负责底层的驱动开发,但是由于原来网络传输数据处理的方式太过不妥,于是我就按照自己的意愿往下折腾,还真的折腾出很多问题,这可真的很难为我这个本来就对网络传输不太擅长的家伙,因为一开始接触的网络传输协议是TCP/IP协议,也写过能够互相通信的C/S模式demo,所以我就选择了自己相对擅长的socket来进行网关到服务器的数据链路搭建,本来点对点传输的确比较简单方便,但是整个项目又不是只要传输一次数据,就不得不使用多线程的方式在程序中创建多个socket来分别完成不同的连接任务,一个用来接收客户端连接发送传感器状态信息,一个用来接收客户端控制命令,改写服务器文本内容,还有一个就用来读取文件内容,向开发板发送灯光控制指令,看起来比较简单,但是一旦和安卓端配合不好,就可能遇到无法连接、发送错误、接收错误、客户端闪退、服务器卡死等各种问题,这些问题在这个星期集中爆发了,不过我和安卓端的小学弟还是一个个地解决了问题,怎么解决的呢,以下就是思路参考,由于不想让同行以及大师看到我稚嫩的编码风格&