繁体   English   中英

java.net.connectexception客户端套接字故障

[英]java.net.connectexception client socket failure

我试图创建服务器,并在同一台wifi下的2台不同计算机上运行服务器和客户端类。 但是,在尝试创建客户端套接字时,我总是遇到此异常

Exception in thread "main" java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at Client.main(Client.java:34)

我的服务器类:

public static void main (String[]args) throws IOException{

    Scanner in = new Scanner(System.in);

    String fromClient;
    String toClient;

    boolean made = false;

    ServerSocket serverSocket = null;

    while (!made){
        System.out.println("Please input the port number");
        int port = in.nextInt();
        try {
            serverSocket = new ServerSocket(port);
            made = true;
        } catch (IOException e){
            System.out.println("could not listen on port " + port);
        }
    }

    System.out.println("server socket established");

    //ServerSocket serverSocket = new ServerSocket(port, 8, InetAddress.getByName(ip));
    Socket client = serverSocket.accept();

    System.out.println("accepted");

    Scanner sc = new Scanner (client.getInputStream());
    PrintStream ps = new PrintStream(client.getOutputStream());

    ps.println("agiftfromserver");

    while (sc.hasNext()){
     fromClient = sc.next();

     System.out.println("from client " + fromClient);

     toClient = in.next();
     ps.println(toClient);

    }

    in.close();
    sc.close();
    serverSocket.close();
    serverSocket.close();
}

客户:

public static void main (String[]args) throws UnknownHostException, IOException{


    Scanner in = new Scanner(System.in);

    String fromServer;
    String toServer;


    //System.out.println("Please input the ip address");
    //String ip = in.next();

    System.out.println("Please input the port number");
    int port = in.nextInt();

    Socket clientSocket = new Socket("localhost", port); //ERROR

    System.out.println("client established");

    //Socket cs = new Socket(ip, port);
    Scanner sc = new Scanner(clientSocket.getInputStream());
    PrintStream ps = new PrintStream(clientSocket.getOutputStream());

    while (sc.hasNext()){
        fromServer = sc.next();

        System.out.println("from server " + fromServer);

        toServer = in.next();
        ps.println(toServer);

    }

    in.close();
    clientSocket.close();
    sc.close();

} 

我看过其他线程,我:尝试使用不同的端口号,关闭了防火墙,并确保在客户端之前运行服务器

当我在同一台计算机上运行两个类,但在2个不同的设备上却给我错误时,它起作用。

跨计算机连接是否可以这样工作?

如果是这样,是否有人知道如何解决此错误。 谢谢

您正在连接到localhost ,根据您的问题应该是另一台计算机的ip ...

暂无
暂无

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

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