android 端监听socket
来源:互联网 发布:今日影评表演者 知乎 编辑:程序博客网 时间:2024/06/03 20:41
在物联网项目开发中,Socket编程是至关重要的,如下是我项目中所运用到的android作为服务端的案例,与大家分享:
为了保证公司项目的保密性, 只记录关键的功能 实现代码 ,不提供 业务逻辑。
Socket一直监听为耗时操作需要在子线程操作,避免阻塞主线程。
android端代码 :
private int socket_port=9999; private boolean ifListen =true; /** * 开始监听 */ private Thread socketThread = new Thread() { public void run() { while (true) { try { if (serverSocket == null && ifListen) { serverSocket = new ServerSocket(socket_port);// serverSocket.setSoTimeout(60*1000); } else if (serverSocket != null) { socket = serverSocket.accept(); if (socket != null) { DataInputStream in = new DataInputStream(new BufferedInputStream(socket .getInputStream())); try { ByteArrayOutputStream outStream = new ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while ((len = in.read(buffer)) != -1) { outStream.write(buffer, 0, len); } byte[] data = outStream.toByteArray(); dataString = new String(data, "utf-8");AppLog.Log(dataString);} catch (Exception e) { AppLog.Log(AppLog.LogType.ERROR, "DataService read: " + e); destorySocket(); } } } } catch (IOException e1) { AppLog.Log(AppLog.LogType.ERROR, "DataService accept: " + e1); destorySocket(); } try { Thread.sleep(Config.KEEP_ALIVE_RESPONSE_TIMEOUT); } catch (InterruptedException e) { AppLog.Log(e.toString());} }} };public void startListen() { ifListen = true; if (!ifSocketThreadStart) { ifSocketThreadStart = true; socketThread.start(); } } public void stopListen() { ifListen = false; destorySocket(); } private void destorySocket() { AppLog.Log("destorySocket"); try { if (serverSocket != null && !serverSocket.isClosed()) { serverSocket.close(); } } catch (IOException e) { AppLog.Log(e.toString()); } finally { serverSocket = null; } try { if (socket != null && !socket.isClosed()) { socket.close(); } } catch (IOException e) { AppLog.Log(e.toString()); } finally { socket = null; } }
0 0
- android 端监听socket
- Socket监听
- 监听socket
- socket监听
- android socket用TCP方式,client端怎么监听服务器发送来的数据
- Socket监听 /TcpListener监听/HttpListener 监听
- PHP监听Socket
- 监听socket初始化
- C# socket监听
- android监听全局监听
- android 监听
- Myeclipse+tomcat+socket启动socket监听方法
- socket连接监听udp包
- nginx 监听socket的继承
- http监听socket的初始化
- C# Socket 监听程序:IllusiveServer
- Socket编程之Select()监听
- 【C#-Socket监听消息处理】
- Http
- vitamio 小米pad 上无法播放问题
- linux部署tomact不能打开页面的情况
- MySQL EXPLAIN 命令详解学习
- Shader -- Cg Documentation
- android 端监听socket
- Latex注释快捷键
- 用智慧写代码,写出别人一眼看懂的代码
- Shell入门(三)数组、基本运算符
- remapB绘制迁徙图
- 利用dubbo和zookeeper搭建高可用性的SOA服务
- Eclipse Hibernate DataSourceExplorer SQL Server 2012 sp1问题
- 关于django的request.POST._mutable问题
- seeion过期之后,在iframe页面弹出登录窗口解决