关于安卓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

目录
相关文章
|
6月前
|
Android开发 Python
Python封装ADB获取Android设备wifi地址的方法
Python封装ADB获取Android设备wifi地址的方法
152 0
|
Android开发
Android Http 请求封装及使用
Android Http 请求封装及使用
232 0
|
前端开发 Android开发 数据安全/隐私保护
安卓MVI架构真的来了?动手试着封装吧(一)上
安卓MVI架构真的来了?动手试着封装吧(一)
302 0
|
5月前
|
缓存 网络协议 Linux
c++实战篇(三) ——对socket通讯服务端与客户端的封装
c++实战篇(三) ——对socket通讯服务端与客户端的封装
121 0
|
6月前
|
Android开发
Android 分享机顶盒项目的封装类《GridView》(二)(转)
Android 分享机顶盒项目的封装类《GridView》(二)(转)
48 2
|
3月前
|
Android开发 iOS开发
Android项目架构设计问题之将隐式跳转的逻辑进行抽象和封装如何解决
Android项目架构设计问题之将隐式跳转的逻辑进行抽象和封装如何解决
42 0
|
3月前
|
编解码 API 开发工具
Android平台轻量级RTSP服务模块二次封装版调用说明
本文介绍了Android平台上轻量级RTSP服务模块的二次封装实践,旨在简化开发流程,让开发者能更专注于业务逻辑。通过`LibPublisherWrapper`类提供的API,可在应用中轻松初始化RTSP服务、配置视频参数(如分辨率、编码类型)、启动与停止RTSP服务及流发布,并获取RTSP会话数量。此外,还展示了如何处理音频和视频数据的采集与推送。最后,文章提供了从启动服务到销毁资源的完整示例,帮助开发者快速集成实时流媒体功能。
|
5月前
|
Android开发 Kotlin
kotlin安卓开发【Jetpack Compose】:封装SnackBarUtil工具类方便使用
GPT-4o 是一个非常智能的模型,比当前的通义千问最新版本在能力上有显著提升。作者让GPT开发一段代码,功能为在 Kotlin 中使用 Jetpack Compose 框架封装一个 Snackbar 工具类,方便调用
|
6月前
|
XML Java Android开发
Android 分享机顶盒项目的封装类《GridView》(三)(转)
Android 分享机顶盒项目的封装类《GridView》(三)(转)
38 2
|
5月前
|
XML 网络协议 Java
53. 【Android教程】Socket 网络接口
53. 【Android教程】Socket 网络接口
54 0