Java 套接字/服务器套接字连接不可用';不能在同一网络上的设备之间工作

Java 套接字/服务器套接字连接不可用';不能在同一网络上的设备之间工作,java,sockets,Java,Sockets,服务器 客户 ServerSocket server = new ServerSocket(9999,50,InetAddress.getLocalHost()); System.out.println(server.getInetAddress()); //prints 192.168.1.109 Socket client = server.accept(); 如果我从计算机上运行客户端和服务器,它就可以工作,但如果我在同一网络上的移动设备上运行客户端,它就不能工作。我想上一次我通过让套接

服务器

客户

ServerSocket server = new ServerSocket(9999,50,InetAddress.getLocalHost());
System.out.println(server.getInetAddress()); //prints 192.168.1.109
Socket client = server.accept();

如果我从计算机上运行客户端和服务器,它就可以工作,但如果我在同一网络上的移动设备上运行客户端,它就不能工作。我想上一次我通过让套接字连接到公共IP地址并使用端口转发来解决这个问题,但是使用本地地址它不起作用的原因是什么?我能做些什么来解决这个问题?

也许您的服务器上运行的防火墙阻止了从本地主机以外的主机到端口9999的连接?

当它在移动设备上不工作时,您收到的消息(或异常)是什么?很好,我一直在用Android Monitor进行调试时遇到问题(也许这就是我的问题),并且异常没有显示,但是它的NetworkOnMainThreadException,这似乎是不言自明的,我会去修复它。但是我几年前就遇到了这个问题,所以我认为它是一样的。也许是这样。该死,它现在起作用了,FacePalm感谢你的明显建议。不,它实际上很好,一旦我修复了NetworkWorkonMainThreadException
Socket socket = new Socket(InetAddress.getByName("192.168.1.109"),9999);