public static void main(String[] args) throws Exception {
	
		//Verify arguments
		if (args.length != 5) {
			usage();
		}
		
		DatagramSocket mailbox = null;
		String serverHost = null;
		int serverPort = 0;
		String clientHost = null;
		int clientPort = 0;
		String name = null;
		
		try {
		
			//Create the socket
			name = args[0];
			clientHost = args[1];
			clientPort = Integer.parseInt(args[2]);
			serverHost = args[3];
			serverPort = Integer.parseInt(args[4]);
		
			mailbox = new DatagramSocket
				(new InetSocketAddress (clientHost, clientPort));
				
		}
		
		catch (Exception e) {
			usage();
		}
		
		//Create the objects and set the appropriate listeners
		final ModelProxy proxy = new ModelProxy(mailbox, 
			new InetSocketAddress (serverHost, serverPort));
		FifteenView view = new FifteenView(name);
		view.setViewListener(proxy);
		proxy.setModelListener(view);
		
		//Handle timeouts
		Runtime.getRuntime().addShutdownHook (new Thread() {
			public void run() {
				proxy.quit();
			}
		});

	

	}