原理

通过 Socket 连接通信,将 PC 端作为客户端,Android 设备作为服务端
127.0.0.1 为设备本地地址

Android 与 PC 端通过端口通信,需要用到 forward 指令

adb forward tcp:8000 tcp:9000
将 PC 的8000端口的数据发送到 Android 设备9000端口
执行该指令之后才能通信

注意,该指令只能由 PC 端执行,故 Socket 方式不支持两台 Android 设备间通过 USB 通信

PC 端代码

public static void main(String[] args) {        try {            Socket socket = new Socket("127.0.0.1", 8000);            DataOutputStream dos = new DataOutputStream(socket.getOutputStream());            dos.writeUTF("send from pc");            socket.close();        } catch (IOException ex) {            System.out.println(ex.getMessage());        }    }

Android 端代码

class AndroidServer extends Thread {        private boolean stop = false;        public void setStop(boolean stop) {            this.stop = stop;        }        @Override        public void run() {            ServerSocket serverSocket = null;            try {                serverSocket = new ServerSocket(9000);                while (!stop) {                    Socket socket = serverSocket.accept();                    DataInputStream inputStream = new DataInputStream(socket.getInputStream());                    DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream());                    final String msg = inputStream.readUTF();                    Log.d(TAG, "msg: " + msg);                    runOnUiThread(new Runnable() {                        @Override                        public void run() {                            Toast.makeText(MainActivity.this, msg, Toast.LENGTH_LONG)                                    .show();                        }                    });                    socket.close();                }            } catch (Exception e) {                e.printStackTrace();            } finally {                if (serverSocket != null) {                    try {                        serverSocket.close();                    } catch (Exception e) {                        e.printStackTrace();                    }                }            }        }    }

更多相关文章

  1. Android跨进程通信之小例子(一)
  2. Android am 指令的使用
  3. Android 串口通信开发笔记01
  4. 一篇看懂Android与Flutter之间的通信
  5. Android跨进程通信之AIDL(四)
  6. Android使用adb指令在虚拟机中安装、卸载apk程序
  7. pc 与 android webrtc 通信的研究
  8. IPC—进程间通信的基础概念--《Android开发艺术探索》阅读笔记—
  9. Android和JS通信方案

随机推荐

  1. android高级应用第二阶段
  2. 使用Android(安卓)studio作按键切换界面
  3. Android(安卓)EditText属性总结
  4. Android:TextView与图片上下对齐使用drawa
  5. Android技能树 — Drawable小结
  6. Android中EditText的inputType属性
  7. Android(安卓)C语言开发系列教程目录
  8. Android(安卓)SDK Android(安卓)NDK 官方
  9. Android高手进阶教程
  10. android学习笔记(二)——textAppearance的