使用adb forward而不是redir

时间:2012-04-04 01:53:51

标签: android networking adb forward ice

我在Android上有一个客户端和一个服务器应用程序(使用ZeroC - Ice平台进行通信)。服务器侦听TCP端口10000,客户端使用TCP端口5501(我选择的任意端口号)。

当我telnet到服务器并运行redir add tcp:5501 tcp:10000时,它运行顺畅。

但是,由于我目前的系统设置(通过虚拟机使用androidx86二进制文件),我不能再telnet到服务器。所以我希望我可以使用adb forward代替。然而,无论我尝试过什么端口组合,我都无法让它工作。

如果有人能对这些内容有所了解,我真的很感激: - 是否可以telnet到设备复制或设备?我已阅读stackoverflow上的另一篇文章,telnet接口仅适用于模拟器 - rediradb forward之间有什么区别?我应该如何使用adb转发来实现服务器上的redir tcp:A:B

由于

1 个答案:

答案 0 :(得分:0)

我终于设法让它发挥作用。几条评论

  • 无法通过以太网访问USB连接的设备。可以通过无线网络访问它们(假设它们与另一方连接到同一网络)
  • VirtualBox有自己的NAT转发。如果没有端口转发,则在默认网络配置(即NAT)下,虚拟设备将无法访问。

我的工作设置如下

  • USB连接设备通过无线连接到PC(找出您的PC的本地IP地址,通常类似于192.168.1.x)
  • 我为NAT启用了VirtualBox转发功能。我的选项是TCP 10000:10000(其中10000是任意端口号。注意它应该高于1024)所以当我的USB连接设备通过端口10000连接到PC时,它通过VirtualBox的转发转发到虚拟设备
  • 虚拟设备侦听TCP端口10000.(我没有指定主机地址以简化生活)
  • 如果您收到“NetworkOnMainThread”异常,请使用

    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
    

希望这有助于某人