9

嗨,我正在使用 android 模拟器开发一个应用程序。我需要在可以从本地网络访问的某个端口 X 上注册一个 UDP 套接字。由于 Android 模拟器是 NAT 的,所以我需要端口转发。我关注了这篇文章“使用 Android 模拟器通过 IP 和端口访问网络设备”。它表明我需要使用

adb forward tcp:localPort tcp:emulatorPort

但是这个方案不适用于 udp(如果有人知道它的 UDP 版本,请告诉我)。对于 UDP,我找到了另一种解决方案,我需要按如下方式 telnet 到 adb 端口(我的 adb 在端口 5037 上运行)

telnet localhost 5037

并使用 redir 命令重定向 UDP 端口

redir add udp:36963:36963

但是当我远程登录时,它给出了以下错误

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.

我尝试了很多方法来解决这个问题,但没有结果。

我需要知道从外部网络访问模拟器的任何解决方案。

4

2 回答 2

3

The typical telnet port for the first emulator is 5554.

Try:

telnet localhost 5554

Then you'll need to authenticate, the instructions are printed in the console. It should be something like copy the value from $HOME/.emulator_console_auth_token without the trailing '%'.

auth <auth_token>
redir add udp:36963:36963
于 2020-11-11T18:36:00.187 回答
-2

这是错误的

redir add udp:36963:36963

尝试这个:

redir add udp:portA udp:portB

在大多数情况下,portA 和 portB 会有所不同。适应您的代码

于 2013-05-05T03:49:17.317 回答