繁体   English   中英

客户端服务器应用程序中的Java连接被拒绝

[英]Java Connection refused in Client server application

我正在用Java构建客户端服务器应用程序,这是我的代码

客户

import java.net.*;
import java.io.*;

class ClientCode{
    public static void main(String args[]) throws Exception {
        int character;
        Socket socket = new Socket("112.134.214.53", 8765);
 //i have put my public ip instead of 127.0.0.1 in order to test it is working through the internet or not
        InputStream in = socket.getInputStream();
        OutputStream out = socket.getOutputStream();
        String string = "Hello!\n";
        byte buffer[] = string.getBytes();
        out.write(buffer);
        while ((character = in.read()) != -1){
            System.out.print((char) character);
        }
        socket.close();
    }
}

服务器

import java.io.*;
import java.net.*;
public class ServerCode{
    public static void main(String[] args ){
        try{
            ServerSocket socket = new ServerSocket(8765);
            Socket insocket = socket.accept( );
            BufferedReader in = new BufferedReader (new InputStreamReader(insocket.getInputStream()));
            PrintWriter out = new PrintWriter(insocket.getOutputStream(), true);
            String instring = in.readLine();
            out.println("The server got this: " + instring);
            insocket.close();
        }
        catch (Exception e) {}
    }
}

两者都使用我的家用adsl单端口路由器在连接到互联网的同一台计算机上运行。

服务器应用程序运行正常,但是当我的客户端通过公共ip连接到服务器时,问题开始,下面是错误消息

Exception in thread "main" java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(Unknown Source)
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at ClientCode.main(ClientCode.java:6)

我的卡巴斯基网络监视器向我显示我的端口8765正常运行

发生此异常可能有两个原因:

1-没有服务监听您尝试连接的端口。 为了进行调试,您可以尝试使用浏览器加载http://112.134.214.53:8765,然后查看它是否与服务器连接。

2-(如果其他一切都很好),这很可能是防火墙问题。

我也有这个问题。 我使用的是Netbeans,但不断收到“ java.net.ConnectException:连接被拒绝:”,但是后来我尝试使用jGrasp,它起作用了……也许这可以提供一些额外的疑难解答帮助。 也可能是您只需要一个Java策略文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM