我在模拟器中的Android应用上运行了ServerSocket。我想从主机(MacBook)向它发送消息。
严格按照How to connect to an Android server socket in the emulator的说明进行操作,我的步骤是:
在Android应用中启动新线程。在此线程中,使用 ServerSocket侦听端口8080和本地上的传入请求 IP地址。
InetAddress addr = InetAddress.getByName(< ipaddress >);
serverSocket = new ServerSocket(8080, 0, addr);
clientSocket = serverSocket.accept();
使用ADB将网络流量从端口5050的主机重定向到8080。
telnet localhost 5554
redir add tcp:5050:8080
使用Telnet在端口5050上向主机发送消息。该消息应重定向到仿真器上的端口8080。相反,我收到一条连接关闭消息。
telnet -d localhost 5050
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
有什么想法为什么会立即关闭连接?将消息发送到服务器可以做什么?
答案 0 :(得分:1)
无法从let config = {
mode: "production",
....
上的主机访问仿真器,但是它是127.0.0.1
...否则,您将连接到本地环回,而不是虚拟接口。