Android Emulator(qemu)不允许某些tcp连接(RST、ACK作为SYN的应答)

Android Emulator(qemu)不允许某些tcp连接(RST、ACK作为SYN的应答),android,android-emulator,qemu,Android,Android Emulator,Qemu,虽然Internet浏览在emulator中工作,但同样在emulator中运行的我的应用程序无法通过TCP连接到端口5222上的Internet服务器。我很确定我的路由器或pc上没有防火墙,因为我可以从pc远程登录到ip:端口 以下是在emulator上拍摄的packettrace的屏幕截图: 模拟设备上的数据包跟踪显示,到该特定端口的每个SYN数据包都用RST、ACK应答,并且我的应用程序用“连接错误”关闭连接 为什么仿真器会阻止(?)这些端口?如何更改它?仿真器在其自己的网络上运行,因此,

虽然Internet浏览在emulator中工作,但同样在emulator中运行的我的应用程序无法通过TCP连接到端口5222上的Internet服务器。我很确定我的路由器或pc上没有防火墙,因为我可以从pc远程登录到ip:端口

以下是在emulator上拍摄的packettrace的屏幕截图:

模拟设备上的数据包跟踪显示,到该特定端口的每个SYN数据包都用RST、ACK应答,并且我的应用程序用“连接错误”关闭连接


为什么仿真器会阻止(?)这些端口?如何更改它?

仿真器在其自己的网络上运行,因此,如果要通过不同的端口进行通信,必须为非标准端口正确设置转发

如果希望外部应用程序连接到emulator中运行的应用程序,则需要设置转发,以便外部应用程序连接到开发计算机上的端口,emulator将其连接转发到10.0.2.15,该端口是仿真器地址

有关更多信息,请参阅开发指南:

明白了。如前所述,环境变量http_proxy中设置的代理将用于所有TCP连接。 但是我的代理被配置为只允许某些TCP端口

unset $http_proxy
或使用

emulator -http-proxy none
(“none”不是正确的代理,因此它将给您一条错误消息。但至少环境变量未被处理)

附言:

如果未提供-http proxy命令,emulator将查找http_proxy环境变量,并自动使用与上述格式匹配的任何值


谷歌,这太疯狂了。我设置了http_proxy环境变量,因为我不希望http(s)流量通过该代理。并非所有TCP连接

请注意,有问题的应用程序正在emulator中运行。我将在问题中更清楚地说明这一点。@Flow我的答案是关于如何连接到模拟器中的应用程序Wajiw:错误的方式。从emulator内的应用程序启动到特定主机:端口的连接。对不起,误会了。哦,这是有道理的。很好的发现,请在投票时(如果你还没有投票):-)