简单 client/server 程序 java

Simple client/server program java

我正在尝试一个非常简单的 server/client 程序,但似乎无法运行 - "acc" 和 "waiting for connection" 已打印,但 "connection" 从未打印过我做错了什么?

客户代码:

    Socket s;
    String serverIP = "127.0.0.1";
    int serverPortNo = 9010;

    public Frame(){

    try{
        s = new Socket(serverIP, serverPortNo);
    }
    catch(IOException e){
        System.out.println("error : "+ e.getMessage());
    }
}

服务器代码:

public class Server {

ServerSocket ss;

public Server(int port){

    try{
        ss = new ServerSocket(port);
        acceptConnections();
    }
    catch(IOException e){
        System.out.println(e.getMessage());
    }
}

public void acceptConnections(){
    Socket s;
    System.out.println("acc");

    while(true){
        try{
            System.out.println("waiting for connections");
            s= ss.accept();
            System.out.println("connection");

        }
        catch(Exception e){
            System.out.println("error : " + e.getMessage());
        }
    }
}

主要方法:

public class Main {

public static void main(String[] args){
    new Server(9010);
    new Frame();
}
}

您需要在单独的线程中启动服务器。现在您的主应用程序启动服务器并等待客户端,但客户端从未启动。 请尝试将您的 main 方法更改为如下所示

try {
  Thread t = new Thread(new Runnable() {
         public void run() {
             new Server(9010);
         }
     });
  t.start();
  new Frame();
  t.join();
} catch(Exception e) { e.printStackTrace(); }