//: WebServer.java
//   Serveur TCP threade
//  E. Viennet, R&T2
import java.net.*;
import java.io.*;
import java.util.*;

public class WebServer {
	ServerSocket sockServ;

	WebServer (int port) throws IOException {
		System.out.println("Creating server on port " + port );
		sockServ = new ServerSocket(port);
		System.out.println("Serveur OK sur port " + port );
	}

	public void serveForever() {
		while (true) { // boucle infinie
			// attend une connexion:
			try {
				Socket connexion = sockServ.accept();
				// creation d'un thread traitant la connexion:
				TraiteConnexion trCon=new TraiteConnexion(connexion);
				trCon.start();
			} catch (IOException e) {
				System.err.println("Erreur: serveForever:"
								   + e.getMessage());
			}
		}
	}

	public static void main(String[] args) {
		try {
			System.out.println("GTR web server starting" );
			int ServerPort = Integer.parseInt( args[0] );
			try {
				WebServer server = new WebServer(ServerPort);
				server.serveForever();
			} catch(IOException e) {
				System.err.println("Erreur: serveur: " 
								   + e.getMessage());
			}
		} catch (Exception e) {
			e.printStackTrace();
			System.err.println("Usage: WebServer <numero de port>");
		}
	}
}
