Android开发TCP连接
来源:互联网 发布:知乎 最美av神作 编辑:程序博客网 时间:2024/04/29 00:20
一、添加依赖
compile ‘com.koushikdutta.async:androidasync:2.+’
二、应用
public class TCPHandle { public static long flowNumber=0; public static boolean isOnWebCall=false; public static final int PORT = "端口号"; public static final String HOST = "ip地址"; public static AsyncSocket _asysocket; public static String TOken=""; public static String Uid=""; /** * 判断某个界面是否在前台 * @param context Context * @param className 界面的类名 * @return 是否在前台显示 */ public static boolean isForeground(Context context, String className) { if (context == null || TextUtils.isEmpty(className)) return false; ActivityManager am = (ActivityManager) context.getSystemService(ACTIVITY_SERVICE); List<ActivityManager.RunningTaskInfo> list = am.getRunningTasks(1); for (ActivityManager.RunningTaskInfo taskInfo : list) { if (taskInfo.topActivity.getShortClassName().contains(className)) { // 说明它已经启动了 return true; } } return false; } private static void handleConnectCompleted(Exception ex, final AsyncSocket socket) { isConnecting=false; if (ex != null) { System.out.println(ex); return; } _asysocket = socket; socket.setDataCallback(new DataCallback() { @Override public void onDataAvailable(DataEmitter emitter, ByteBufferList bb) { byte[] _data = bb.getAllByteArray(); System.out.println("Recdata:"+Protrol.getInstance().bytesToHexString(_data)); //需要验证数据有效转义还原之类 if(Protrol.getInstance().isValid(_data)){ //检验有效性 byte[]data = Protrol.getInstance().getCheckData(_data); switch(data[1]){ case (byte) 0x81: //登录 if(data[2]==0x01){ RxBus.get().post(BusAction.LogIn_Home,data); //登录成功 } break; default: break; } } } }); socket.setClosedCallback(new CompletedCallback() { @Override public void onCompleted(Exception ex) { _asysocket = null; Uid=""; TOken=""; if (ex != null) { System.out.println(ex); } System.out.println("[Client] Successfully closed connection"); } }); socket.setEndCallback(new CompletedCallback() { @Override public void onCompleted(Exception ex) { _asysocket = null; Uid=""; TOken=""; if (ex != null) { System.out.println(ex); } System.out.println("[Client] Successfully end connection"); } }); } public static boolean writedString(String datastring) { if (_asysocket != null) { byte[] send = datastring.getBytes(); ByteBufferList data = new ByteBufferList(send); try{ _asysocket.write(data); }catch (Exception e){ e.printStackTrace(); } return true; } return false; } public static boolean writedData(byte[] send) { if (_asysocket != null) { ByteBufferList data = new ByteBufferList(send); try{ _asysocket.write(data); }catch (Exception e){ e.printStackTrace(); } System.out.println("发送数据到服务器:"); System.out.println(Protrol.getInstance().bytesToHexString(send)); return true; } return false; } public static boolean isConnecting=false; public static synchronized boolean Connect() { isConnecting=true; if (AsyncServer.getDefault().isRunning()) { RxBus.get().post(BusAction.Main_Toeast, "已经创建过链接了"); isConnecting=false; return true; } try { AsyncServer.getDefault().connectSocket(new InetSocketAddress(HOST, PORT), new ConnectCallback() { @Override public void onConnectCompleted(Exception ex, final AsyncSocket socket) { isConnecting=false; handleConnectCompleted(ex, socket); } }); } catch (Error error) { isConnecting=false; } return false; } public static void Stop() { AsyncServer.getDefault().stop(); }}
阅读全文
0 0
- Android开发TCP连接
- android tcp 长连接
- Android TCP连接问题
- android开发-基于tcp连接的,两部android设备之间的交流通信
- Android移动端IM开发之应用层实现TCP长连接多路复用
- MyIM2006开发报告2:Tcp连接
- unity开发:TCP socket网络连接
- Android 开发TCP、UdP客户端
- Android 开发TCP、UdP客户端
- Android面试之TCP Socket连接流程
- android WIFI连接开发
- android WIFI连接开发
- android 游戏开发连接
- android WIFI连接开发
- Android网络连接开发
- android开发技术连接
- android WIFI连接开发
- android WIFI连接开发
- MATLAB(ofdm注水算法odfmwaterfilling)
- 文章标题
- DS Simulia XFlow 2017 官方中文版下载附安装教程
- Spring Cloud (1) | java.net.UnknownHostException: eureka-server
- Effective Java读书笔记-考虑实现Comparable接口
- Android开发TCP连接
- 独家=新书《倾心倾情倾了所有》免费阅读全文[已完结]
- 字符编码
- 简单的快速幂算法
- jacob调用ocx控件出错
- mac 使用PHP开发环境
- 文件操作基本流程
- 一些Linux命令简要笔记——磁盘管理
- Ubuntu16.04中将python3设置为默认