我正在实现移动聊天应用程序,我正在使用套接字连接来实现p2p连接。我的聊天与Android设备工作正常。我的问题是我可以连接3g网络中的设备或者在同一个WiFi网络中连接设备但是当WiFi外部的设备表单尝试连接WiFi网络中的设备时,连接无法正常工作。我知道这是因为WiFi分配的设备的本地IP。如何在WiFi中root和连接设备?
答案 0 :(得分:0)
听起来更像是路由器设置问题,而不是应用程序问题(意味着您的应用的用户也需要为自己的网络执行此操作)。
您的wifi路由器需要知道如何将通信转发到您的设备。因此,假设您的应用程序正在端口1234上连接,那么您需要告诉路由器将端口1234上的外部通信转发到WiFi网络中手机的内部IP。
网络外部的电话应定位到网络的外部IP和端口1234.
答案 1 :(得分:0)
除非您使用UDP并且NAT是友好的,否则无法直接向内部对等方发送TCP通信。在大多数情况下,您必须检查NAT的可能性,如果有可能,您需要执行映射预测并告诉对等方尝试使用预测的IP地址。
如果您不希望用户必须配置其NAT,则该选项有效。即使在这种情况下,这样的配置也不总是足够的(例如,如果存在级联的NAT或代理)。