/*
 add comment: purpose of this class?
*/

import java.net.*;
import java.io.*;

public class SensorServerMulti {

  /* add comments */
  public static void main(String[] args) throws IOException {

    /* add comments */
    if (args.length != 1) {
      System.err.println("Usage: java SensorServerMulti <port number>");
      System.exit(1);
    }

    /* add comments */
    int portNumber = Integer.parseInt(args[0]);

    try (
      /* add comments */
      ServerSocket serverSocket = new ServerSocket(Integer.parseInt(args[0]));
    ) {
      System.out.println("Server is listening on TCP port " + portNumber);

      /* add comments */
      while (true) {
      
        /* add comments */
        Socket clientSocket = serverSocket.accept();
        System.out.println("New client connected from " + clientSocket.getInetAddress() + " port:" + clientSocket.getPort());

        /* add comments */
        new ServerThread(clientSocket).start();
      }
      
    } catch (IOException e) {   /* add comments */
      System.out.println("Exception caught when trying to listen on port " + portNumber + " or listening for a connection");
      System.out.println(e.getMessage());
    }
  }
}
