java new socket java.net.ConnectException: Connection refused: connect拒绝连接,如何解决?


InetAddress in = InetAddress.getByName("192.168.0.102");
                Socket so = new Socket(in, 8998);
                OutputStream op = so.getOutputStream();
                PrintWriter pw = new PrintWriter(op);
                Robot ro = new Robot();

我尝试socket通信,服务器端一切正常,但当我运行客户端时遇到了如下错误

Exception in thread "Thread-0" java.lang.RuntimeException: java.net.ConnectException: Connection refused: connect
    at Monitor.run(Monitor.java:26)
Caused by: java.net.ConnectException: Connection refused: connect
    at java.base/sun.nio.ch.Net.connect0(Native Method)
    at java.base/sun.nio.ch.Net.connect(Net.java:579)
    at java.base/sun.nio.ch.Net.connect(Net.java:568)
    at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
    at java.base/java.net.Socket.connect(Socket.java:633)
    at java.base/java.net.Socket.connect(Socket.java:583)
    at java.base/java.net.Socket.<init>(Socket.java:507)
    at java.base/java.net.Socket.<init>(Socket.java:319)
    at Monitor.run(Monitor.java:20)

网上的文章都说可能是端口被占用了
或者开了防火墙被拦截,或者服务器没有监听接口什么的,
我全试了一遍毫无卵用,已经弄了我两天了
别去网上搜,全是复制粘贴术!

img

InetAddress in = InetAddress.getByName("192.168.0.102");  

连接的IP是内网IP ,你在客户端运行的时候,他会请求 客户端本机网络环境下的

192.168.0.102 

请求被拒绝了,IP、端口、服务器防火墙之类的要检查下