多线程服务器从客户端java接收数据

时间:2018-04-07 23:10:49

标签: java multithreading

我正在开发项目,我有一个处理多个客户端的多线程服务器,但有两种类型的客户端(管理员和会议员),我遇到了问题,我已经创建了一个服务器,当时如果客户端是管理员或会员,则客户端被接受有条件,因为这个不同的客户端都有自己的处理程序classe(函数),但代码只能在第一个条件下工作,但它不适用于两者

我的服务器代码:

try {

  ss = new ServerSocket(portnb);
  System.out.println("le serveur wainting for client");

} catch (Exception e) {
  System.out.println(e.getMessage());
}

while (true) {
  try {        
    clientsocket = ss.accept();
    BufferedReader in = new BufferedReader(new InputStreamReader(clientsocket.getInputStream()));
    if (in.readLine().equals("calculeID"))// administrator function{
      Handler h = new Handler(clientsocket);
      new Thread(h).start();
      System.out.println("administrator is here ");
      in.close();
    }else{  
      if (in.readLine().equals("start"))// conferencier function{            
        Handlerconf hc= new Handlerconf(clientsocket);
        new Thread (hc).start();
        System.out.println("conferencier is here ");
        in.close();
      }
    }
  } catch (Exception e) {
    System.out.println(e.getMessage());
  }
  ss.close();
}

1 个答案:

答案 0 :(得分:0)

每次拨打readLine()都会读取行。致电readLine() 一次,并将结果存储在变量中。然后测试这个变量的值。