pc 应用 经过 usb adb 与 android客户端通信

这回公司要求要实现相似碗豆夹这类的与pc应用进行通信备份通信录,短信,应用,并对这些信息进行编辑的功能。
这里主要用到了 adb,socket,pc 应用经过 usb 联接 android 而后经过发送广播来启动 android 里的服务器端程序。
这是采用 c/s 的通信模式,android 端应用是服务器,pc端的是客户端。pc应用启动android端后经过 tcp 协议进行

通信。 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 并发

相关文章
相关标签/搜索