关于安卓socket的封装的思考

简介: 安卓socket的封装

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

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

(1)数据发送(String)

(2)重连机制

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


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

首先如下图

网络异常,图片无法展示
|

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

接着就是socket的初始化:

网络异常,图片无法展示
|

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

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


网络异常,图片无法展示
|

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


网络异常,图片无法展示
|


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


that's all


码云地址:

https://gitee.com/motosheep/SocketDemo

目录
相关文章
|
2月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
117 0
|
9月前
|
Android开发
Android Http 请求封装及使用
Android Http 请求封装及使用
195 0
|
11月前
|
前端开发 Android开发 数据安全/隐私保护
安卓MVI架构真的来了?动手试着封装吧(一)上
安卓MVI架构真的来了?动手试着封装吧(一)
264 0
|
26天前
|
缓存 网络协议 Linux
c++实战篇(三) ——对socket通讯服务端与客户端的封装
c++实战篇(三) ——对socket通讯服务端与客户端的封装
|
2月前
|
Android开发
Android 分享机顶盒项目的封装类《GridView》(二)(转)
Android 分享机顶盒项目的封装类《GridView》(二)(转)
26 2
|
1月前
|
Android开发 Kotlin
kotlin安卓开发【Jetpack Compose】:封装SnackBarUtil工具类方便使用
GPT-4o 是一个非常智能的模型,比当前的通义千问最新版本在能力上有显著提升。作者让GPT开发一段代码,功能为在 Kotlin 中使用 Jetpack Compose 框架封装一个 Snackbar 工具类,方便调用
|
2月前
|
XML Java Android开发
Android 分享机顶盒项目的封装类《GridView》(三)(转)
Android 分享机顶盒项目的封装类《GridView》(三)(转)
21 2
|
1月前
|
XML 网络协议 Java
53. 【Android教程】Socket 网络接口
53. 【Android教程】Socket 网络接口
21 0
|
2月前
|
达摩院 安全 Java
80 PM撸代码之Android【武侠讲封装、继承、多态】
80 PM撸代码之Android【武侠讲封装、继承、多态】
32 0
|
2月前
011.socket函数错误封装处理
·回顾 在 008.一个简单的网络服务器开发----回声服务器中所实现的服务器功能简单,简单到几乎没有什么错误处理,我们知道,系统调用不能保证每次都成功。如 010所示,如果我们因为自己代码写的有些问题那么光是排查错误就够我们受的了。出错的可能千千万,所以我们必须进行出错处理,这样一方面可以保证我们的程序逻辑正常,另一方面可以迅速定位到故障信息。
38 0