简单的客户端/服务器程序java

时间:2018-01-08 18:58:15

标签: java sockets connection

我正在尝试一个非常简单的服务器/客户端程序,但似乎无法使其正常工作 - " acc"和#34;等待连接"然而,打印"连接"我做错了什么从未打印过?

客户代码:

    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();
}
}

1 个答案:

答案 0 :(得分:0)

您需要在单独的线程中启动服务器。现在,您的主应用程序启动服务器并等待客户端,但客户端永远不会启动。 请尝试将您的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(); }