
public class RequestListener extends Thread {

	Subject sub;
	ServerNetProxy serv;
	
	RequestListener(Subject s, int listenport) {
		sub = s;
		serv = new ServerNetProxy(listenport);
	}
	
	public void run() {
		
		while(true) {
			
			serv.accept();
			
			if(!serv.isValid())
				break;	// if interrupted, then stop the thread
			
			String mess = serv.getMessage();
			String arglist[] = mess.split(" ");
			
			if(arglist.length == 2) {
				
				int port = Integer.parseInt(arglist[0]);
				String option = arglist[1];
				
				if(option.equals("Register")) {
					
					System.out.println(serv.connected_ip + ": " + Integer.toString(port) + " registered!");
					sub.register(serv.connected_ip, port);
					serv.sendMessage("DONE");
					
				}else if(option.equals("Unregister")) {
					
					System.out.println(serv.connected_ip + ": " + Integer.toString(port) + " unregistered!");
					sub.unregister(serv.connected_ip, port);
					
				}else {
					System.out.println("unrecognized message ( option issue )");
				}
				
				
			}else {
				System.out.println("unexcepted message (length issue )");
				System.out.println("message: " + mess);
			}
			
			serv.dispose();
		}
		
	}
	
	
	public void dispose() {
		serv.servDispose();
	}
	
	
}
