通信。 php
监听代码 private void doListen() { mServerSocket = null; try { mServerSocket = new ServerSocket(mServerPort); mMainThreadFlag = true; while (mMainThreadFlag) { Socket client = mServerSocket.accept(); // 开启线程处理客户端请求并发送响应 ServerCmdTransfor sCmdHandler = new ServerCmdTransfor(this.mContext, client); mHdList.add(sCmdHandler); new Thread(sCmdHandler).start(); } } catch (IOException e1) { e1.printStackTrace(); } }
/** * 处理客户端请求并发送响应 这些规则都是由产品经理协商好先后端的通信协议 */ private class ServerCmdTransfor extends TCPServerTransfor implements Runnable { public Handler mNotifyHandler = null; ServerCmdTransfor(Context context, Socket socket) { super(context, socket); } @Override public void run() { Util.log(TAG, Thread.currentThread().getName() + " ServerCmdTransfor start"); CmdData data = null; // 先接收请求 data = readCMD(); Util.log(TAG, Thread.currentThread().getName() + " ServerCmdTransfor readCMD ret " + data); if (data != null) { // 根据cmdId特殊处理 if (data.cmdId == CmdData.COMMAND_SMS_RECEIVE_REQ) { // 手机-->PC端的推送 doNotify(); } else { // 处理 data = TCPServer.this.mCmdHd.processReqCreateResp(data); Util.log(TAG, Thread.currentThread().getName() + " ServerCmdTransfor processReqCreateResp ret " + data); // 而后发送响应 if (data != null) { boolean ret = sendCMD(data); Util.log(TAG, Thread.currentThread().getName() + " ServerCmdTransfor sendCMD ret " + ret); } } } try { mSocket.close(); Util.log(TAG, Thread.currentThread().getName() + " ServerCmdTransfor close"); } catch (IOException e) { e.printStackTrace(); } }
更多的移动互联网的发展趋势、拓者设计吧效果图、移动互联网应用相关的资料请到互联网的一点事:www.yidin.net 留言 java
android QQ群:222392467 android
资料: 后端
http://www.yidin.net/discuz/forum.php?mod=viewthread&tid=216&extra=page%3D1 服务器
http://www.yidin.net/?p=9725 并发