我想在android上运行一个socket服务器,并从其他具有不同网络的android设备读/写数据。
问题是:
当我试图用外部ip设置服务器时,得到java.net.bindexception:bind failed:eaddrnotavail(无法分配请求的地址)
当我用ipv4地址设置服务器时,来自不同网络的其他android设备无法连接到它。
我应该怎么做,将两个或多个android设备与来自不同网络的套接字连接起来?
主要的一点是在任何设备上运行服务器(一个应用程序中的客户机-服务器代码)。
2条答案
按热度按时间iswrvxsc1#
您不必将服务器套接字绑定到ip地址。只是不要调用bind()。
此外,您的服务器只有在运行在通过wifi连接到路由器的android设备上时才能访问。
如果android设备使用移动连接,则无法连接到您的服务器
fnatzsnv2#
你不能绑定到你没有的地址。
您需要(a)绑定到android设备上的接口,以及(b)安排端口转发/打开从路由器到android设备的防火墙(取决于路由器+网络配置)。