AndroidSocketClient
2016-05-20 16:01
519 查看
https://github.com/vilyever/AndroidSocketClient
SocketClient socketClient = new SocketClient("192.168.1.1", 80); socketClient.registerSocketDelegate(new SocketClient.SocketDelegate() { @Override public void onConnected(SocketClient client) { socketClient.sendString("message"); // 发送String消息,使用默认编码 socketClient.sendData("message".getBytes()); // 发送byte[]消息 } @Override public void onDisconnected(SocketClient client) { } @Override public void onResponse(SocketClient client, @NonNull SocketResponsePacket responsePacket) { byte[] data = responsePacket.getData(); // 获取byte[]数据 String msg = responsePacket.getMessage(); // 使用默认编码获取String消息 } }); socketClient.setConnectionTimeout(1000 * 15); // 设置连接超时时长 socketClient.setCharsetName("UTF-8"); // 设置发送和接收String消息的默认编码 socketClient.getHeartBeatHelper().setSendString("heart beat"); // 设置自动发送心跳包的字符串,若为null则不发送心跳包 socketClient.getHeartBeatHelper().setSendData("heart beat".getBytes()); // 同上 socketClient.getHeartBeatHelper().setHeartBeatInterval(30 * 1000); // 设置自动发送心跳包的时间间隔,若值小于0则不发送心跳包 socketClient.getHeartBeatHelper().setReceiveString("heart beat from remote"); // 设置从远程端接收的心跳包字符串,onResponse回调将过滤此信息,若为null则不过滤 socketClient.getHeartBeatHelper().setReceiveData("heart beat from remote".getBytes()); // 同上 socketClient.getHeartBeatHelper().setRemoteNoReplyAliveTimeout(60 * 1000); // 设置远程端多长时间内没有消息发送到本地就自动断开连接,若值小于0则不自动断开 socketClient.getPollingHelper().registerQueryResponse("query", "response"); // 设置自动应答键值对,即收到"query"时自动发送"response" socketClient.getSocketPacketHelper().setSendTailString("\r\n"); // 设置发送消息时自动在消息尾部添加的信息,远程端收到此信息后表示一条消息结束,用于解决粘包分包问题,若为null则不添加尾部信息 socketClient.getSocketPacketHelper().setSendTailData("\r\n".getBytes()); // 同上 socketClient.getSocketPacketHelper().setReceiveTailString("\r\n"); // 设置接收消息时判断消息结束的尾部信息,用于解决粘包分包问题,若为null则每次读取InputStream直到其为空,可能出现粘包问题 socketClient.getSocketPacketHelper().setReceiveTailData("\r\n".getBytes()); // 同上 socketClient.connect(); // 连接,异步进行 socketClient.disconnect(); // 断开连接 socketClient.getState(); // 获取当前状态,Connecting, Connected, Disconnected
相关文章推荐
- Android深入浅出自定义控件(一)
- Android 中的 Service 全面总结
- android studio关联svn后没有出现提交和更新的两个按钮
- Android Studio NDK开发基础
- php 友盟 推送 android代码
- 一种提高Android应用进程存活率新方法
- android的多渠道打包
- AndroidManifest配置之uses-permission
- 实例讲解Android中的AutoCompleteTextView自动补全组件
- Android中如何获取应用版本号
- 【Android】常见控件的属性及使用
- android pull解析xml文件
- 开发者必备的十二大Android开发资源
- Android 相册 和 相机取照 并裁减
- android 利用内容提供者备份短信(XML序列化器)
- android camera YV12数据旋转方法
- [置顶] Android 修改应用包名
- Android实现二维码扫描并登陆网页
- [置顶] Android开发之TextView中间设置横线,适用于电商项目,商品原价之类的功能。
- Android EditText实时监听