android socket 服务端,[android]socket服务器和客户端实现--OKsocket实践总结

本文介绍了如何使用OkSocket在Android上搭建socket服务器并处理客户端连接。OkSocket是一个轻量级的Java库,专注于简化TCP通信。通过实现自定义协议,设置数据解析和回调方法,可以实现服务器接收和回复客户端消息的功能。客户端则通过连接服务器,发送和接收数据,完成双向通信。
摘要由CSDN通过智能技术生成

OKsocket实践总结

OkSocket是github上socket使用比较多的一个Java库,旨在解决轻量级套接字通信问题,使开发人员能够更多地关注业务逻辑,而不是TCP通信原则和一些协议。

github项目中有一份作者自带的中文博客连接,但是其中文字部分还是没有太完整,故根据其英文文档和个人使用经验写这篇文章.

协议

我们必须自己定义的数据包协议,实现IReaderProtocol接口,说明headerLength和BodyLength(Payload length)

在demo程序中,数据包第一个字节代表Payload length(body length),后面的是具体的信息

/**

* 这个协议表示,数据包头第一个字节为包信息部长(Payload length)

*/

val myProtocol = object : IReaderProtocol {

/**

* 通过解析[header] 获取包体的长度并返回

* */

override fun getBodyLength(header: ByteArray, byteOrder: ByteOrder?): Int {

return header[0].toInt()

}

/**

* 包头的长度,里面应该含有数据体长度的信息

* */

override fun getHeaderLength() = 1

}

服务器部分

这部分描述使用OkSocket建立一个简单的服务器

开启监听

准备一个未使用的端口,并首先获得IRegister

val register =OkSocket.server(8088)

通过IRegister获取一个`IServerManager'

val manage = register.registerReceiver(object : ServerActionAdapter() {

/**

* 当服务器侦听您成功指定的端口时,将调用此方法。

*/

override fun onServerListening(serverPort: Int) {

LogUtils.i("端口$serverPort 开启监听成功!")

}

})

ServerActionAdapter是Server的一些行为监听类,可以按需求override.这里上面监听实现了,在端口监听开启成功时,打印日志.(处理客户端发送的消息也在这override)

开启监听

if (!manage.isLive) {

manage.listen()

}

处理消息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值