您好,我正在使用 Android 模拟器开发一个应用程序。我需要在某个可以从本地网络访问的端口 X 上注册一个 UDP 套接字。由于 Android 模拟器是 NAT,所以我需要端口转发。 我关注了这篇文章“Reaching a network device by IP and port using the Android emulator”。说明我需要用
adb forward tcp:localPort tcp:emulatorPort
但此方案不适用于 udp(如果有人知道它的 UDP 版本,请告诉我)。对于 UDP,我找到了另一个解决方案,我需要按如下方式远程登录到 adb 端口(我的 adb 在端口 5037 上运行)
telnet localhost 5037
并使用 redir 命令重定向 UDP 端口
redir add udp:36963:36963
但是当我telnet时,它给出了以下错误
telnet 127.0.0.1 5037
Connecting to 127.0.0.1:5037...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Connection closed by foreign host.
我尝试了很多方法来解决这个问题,但没有结果。
我需要知道从外部网络访问模拟器的任何解决方案。
最佳答案
第一个模拟器的典型 telnet 端口是 5554。
尝试:
telnet localhost 5554
然后您需要进行身份验证,说明打印在控制台中。它应该类似于从 $HOME/.emulator_console_auth_token 复制值,不带尾随的“%”。
auth <auth_token>
redir add udp:36963:36963
关于android - android模拟器的UDP端口转发; "adb forward udp:port udp:port"和 telnet localhost adb_port 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16196396/