Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 套接字编程WiFi问题_Android_Sockets_Ip_Wifi_P2p - Fatal编程技术网

Android 套接字编程WiFi问题

Android 套接字编程WiFi问题,android,sockets,ip,wifi,p2p,Android,Sockets,Ip,Wifi,P2p,我正在实现一个移动聊天应用程序,我正在使用套接字连接来实现p2p连接。我的聊天功能在android设备上运行良好。我的问题是我可以连接3g网络中的设备或同一WiFi网络中的设备,但当WiFi外部的设备尝试连接WiFi网络中的设备时,连接不起作用。我知道这是因为WiFi分配的设备的本地IP。如何在WiFi中建立和连接设备?听起来更像是路由器设置问题,而不是应用程序问题(这意味着应用程序的用户也需要为自己的网络执行此操作) 您的wifi路由器需要知道如何将通信转发到您的设备。因此,假设您的应用程序正

我正在实现一个移动聊天应用程序,我正在使用套接字连接来实现p2p连接。我的聊天功能在android设备上运行良好。我的问题是我可以连接3g网络中的设备或同一WiFi网络中的设备,但当WiFi外部的设备尝试连接WiFi网络中的设备时,连接不起作用。我知道这是因为WiFi分配的设备的本地IP。如何在WiFi中建立和连接设备?

听起来更像是路由器设置问题,而不是应用程序问题(这意味着应用程序的用户也需要为自己的网络执行此操作)

您的wifi路由器需要知道如何将通信转发到您的设备。因此,假设您的应用程序正在端口1234上连接,那么您需要告诉您的路由器将端口1234上的外部通信转发到wifi网络中手机的内部IP


网络外的手机应以网络的外部IP和端口1234为目标

Sajan,您的问题不仅是IP映射问题,而且是NAT穿越问题。并非总是可以在NAT中打孔。如果需要,则必须使用一些复杂的技术来完成,包括位于wifi/lan外部的超级对等点,它将从内部对等点读取翻译后的地址

除非您使用UDP且NAT是友好的,否则无法将TCP通信直接发送到内部对等方。在大多数情况下,您必须检查NAT的可能性,如果可能的话,您需要执行映射预测,并告诉两个对等方在预测的IP地址上尝试com

如果您不希望用户必须配置其NAT,那么这是有效的。即使在这种情况下,这样的配置也不总是足够的(例如,如果存在NAT或代理的级联)