ASocket
:globe_with_meridians: ASocket 是一个TCP/UDP协议的封装库,方便快速实现TCP的长连接与UDP的单播、组播、广播等相关通信
Install / Use
/learn @jenly1314/ASocketREADME
ASocket
ASocket 是一个TCP/UDP协议的封装库,方便快速实现TCP的长连接与UDP的单播、组播、广播等相关通信。
通过 ASocket 统一管理 TCP/UDP 相关 Socket,让其适用于Android,在UI主线程调用和回调,在子线程异步处理消息的发送与接收
效果展示

你也可以直接下载 演示App 体验效果
引入
Gradle:
-
在Project的 build.gradle 或 setting.gradle 中添加远程仓库
repositories { //... mavenCentral() } -
在Module的 build.gradle 中添加依赖项
implementation 'com.github.jenly1314:asocket:1.0.0'
使用
特别说明
组播IP地址特别说明
多播的地址是特定的,D类地址用于多播。D类IP地址就是多播IP地址,即224.0.0.0至239.255.255.255之间的IP地址,并被划分为局部连接多播地址、预留多播地址和管理权限多播地址3类: 局部多播地址:在224.0.0.0~224.0.0.255之间,这是为路由协议和其他用途保留的地址,路由器并不转发属于此范围的IP包。 预留多播地址:在224.0.1.0~238.255.255.255之间,可用于全球范围(如Internet)或网络协议。 管理权限多播地址:在239.0.0.0~239.255.255.255之间,可供组织内部使用,类似于私有IP地址,不能用于Internet,可限制多播范围。
代码示例
//初始化一个ISocket的实现类(如:TCPClient、TCPServer、UDPClient、UDPServer、UDPMulticast)
val tcpClient = TCPClient(host,port)
//初始化ASocket
val aSocket = ASocket(tcpClient)
//设置状态监听
aSocket.setOnSocketStateListener(object : ISocket.OnSocketStateListener{
override fun onStarted() {
}
override fun onClosed() {
}
override fun onException(e: Exception) {
}
})
//设置接收消息监听
aSocket.setOnMessageReceivedListener { data ->
//TODO 接收消息
}
//启动
aSocket.start()
//....
//发送消息
aSocket.write(data)
完整示例
-
TCPClient示例:TCPClientActivity
-
TCPServer示例:TCPServerActivity
-
UDPClient示例:UDPClientActivity
-
UDPServer示例:UDPServerActivity
-
UDPMulticast示例:UDPMulticastActivity
更多使用详情,请查看Demo中的源码使用示例或直接查看API帮助文档
相关推荐
- ANetty 基于Netty封装的Android链路通讯库,用以快速开发高性能,高可靠性的网络交互。在保证易于开发的同时还保证其应用的性能,稳定性和伸缩性。
- AWebSocket 基于okhttp封装的 WebSocket,简洁易用。
版本日志
v1.0.0:2021-10-13
- ASocket初始版本
Related Skills
node-connect
336.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
336.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.8kCommit, push, and open a PR
