コード例 #1
0
  public void run() {
    try {

      // Create character streams for the socket.
      in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
      out = new PrintWriter(socket.getOutputStream(), true);

      // goes until ok name
      while (true) {
        name = in.readLine();
        if (name == null) {
          return;
        }
        if (name.startsWith("TESTLOG:")) {
          name = name.substring(8);

          synchronized (server) {
            if (!server.checkName(name)) {
              server.addClient(name, in, out);
              out.println("OK");
              break;
            } else {
              out.println("FAIL");
            }
          }
        }
      }

      // to UI

      out.println("Connected as: " + name);
      // switch to broadcasting mode
      while (true) {
        String input = in.readLine();
        if (input == null) {
          return;
        }
        server.broadcastMessage(name, input);
      }
    } catch (IOException e) {
      System.out.println(e);
    } finally {

      try {
        socket.close();
      } catch (IOException e) {
      }
    }
  }