jenly1314 / ASocket

:globe_with_meridians: ASocket 是一个TCP/UDP协议的封装库,方便快速实现TCP的长连接与UDP的单播、组播、广播等相关通信

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ASocket

Download MavenCentral JitPack CI CircleCI API License

ASocket 是一个TCP/UDP协议的封装库,方便快速实现TCP的长连接与UDP的单播、组播、广播等相关通信。

通过 ASocket 统一管理 TCP/UDP 相关 Socket,让其适用于Android,在UI主线程调用和回调,在子线程异步处理消息的发送与接收

Gif 展示

Image

你也可以直接下载 演示App 体验效果

引入

Gradle:

  1. 在Project的 build.gradlesetting.gradle 中添加远程仓库

    repositories {
        //...
        mavenCentral()
    }
  2. 在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初始版本

赞赏

如果你喜欢ASocket,或感觉ASocket帮助到了你,可以点右上角“Star”支持一下,你的支持就是我的动力,谢谢 😃

您也可以扫描下面的二维码,请作者喝杯咖啡 ☕

关于我

我的博客 GitHub Gitee CSDN 博客园
Jenly's Blog jenly1314 jenly1314 jenly121 jenly

联系我

微信公众号 Gmail邮箱 QQ邮箱 QQ群 QQ群
Jenly666 jenly1314 jenly1314 20867961 64020761

About

:globe_with_meridians: ASocket 是一个TCP/UDP协议的封装库,方便快速实现TCP的长连接与UDP的单播、组播、广播等相关通信

License:MIT License


Languages

Language:Java 73.6%Language:Kotlin 26.4%