安卓模拟器的UDP端口转发;“adb forward udp:port udp:port” 和 telnet localhost adb_port 不起作用。

9

你好,我正在使用Android模拟器开发应用程序。 我需要在本地网络上注册一个UDP套接字,其端口号为X,并可访问。 由于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时,会出现以下错误。
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.

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

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


Kanwar,你已经找到解决问题的方法了吗?我真的很想知道答案。 - Tomás Rodrigues
2个回答

3

第一个仿真器的典型 telnet 端口是 5554。

尝试:

telnet localhost 5554

接下来你需要进行身份验证,具体步骤会在控制台中显示。大致是将 $HOME/.emulator_console_auth_token 中的值复制,去掉结尾处的百分号(%)。

auth <auth_token>
redir add udp:36963:36963

-2

这是错误的

redir add udp:36963:36963

试试这个:

redir add udp:portA udp:portB

在大多数情况下,portA 和 portB 将是不同的。请根据您的代码进行适应。

问题是我无法进行 Telnet。在此之后,我才能运行这个命令。这就是我所问的如何解决这个问题。 - Kanwar Saad
Windows的Shell在使用telnet时有一些问题。建议改用PowerShell或其他Shell。如果您想要一个图形化界面,可以使用Putty来进行telnet连接。 - Carlos Neves
1
当我通过adb shell登录设备时,当我尝试执行redir add命令时,会出现/system/bin/sh: redir: not found的错误。我该如何解决这个问题? - Csaba Toth
@CsabaToth 它只能通过 Telnet 连接而不是 Shell 进行访问。 - copolii

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接