关于安卓socket的封装的思考

2020-01-21  本文已影响0人  motosheep

安卓端实现socket,需要考虑的问题比较多,如网络的切换,心跳的发送,重新连接,数据补传等处理。

本文仅对socket进行初步封装进行分享。

(1)数据发送(String)

(2)重连机制

首先,socket的使用,ip加port。这个需要注意,ip参数的格式,这里就不再叙述。

关于第一点:(发送,接收需要在子线程处理,这里不再叙述)

首先如下图

这里,我定义了bufferedreader和bufferedwriter用于收发,具体的定义,要看实际项目的需求,有些项目是采用十六进制的格式传递的,定义也有所不同。

接着就是socket的初始化:

这里对初始化使用了try,catch的包围,主要是要自行处理一些异常导致的掉线,连接不上的情况,必须实现。

初始化完毕后,就是进行接收的监听的,这里使用的是一个while循环,进行数据的监听,如下图:

发送的方法,如下图,也需要在子线程处理:

目前,都在抛出异常后,执行重连的函数,关于重连,可以设置标识进行判断是否启用,不过要注意并发引起的问题。

that's all

码云地址:

https://gitee.com/motosheep/SocketDemo

上一篇下一篇

猜你喜欢

热点阅读