@Override
	public void run() {
		try {
			BufferedInputStream socketIn = new BufferedInputStream(client.getInputStream());
			InputStreamReader socketReader = new InputStreamReader(socketIn);
			StringBuffer buffer = new StringBuffer();
			
			int character;
			
			while((character = socketReader.read()) != 13) {
				buffer.append((char) character);
			}
			
			System.out.println("Client " + ID + ": " + buffer);
			
			//wait 10 seconds to pretend that we're processing something(gotten from tutorial...wtf)
			try {
				Thread.sleep(1000);
			} catch(Exception e) {}
			
			Scanner scanner = new Scanner(System.in);
			
			String returnCode = "Server says " + scanner.next() + " at " + new Date().toString() + (char) 13;
			BufferedOutputStream socketOut = new BufferedOutputStream(client.getOutputStream());
			OutputStreamWriter socketWriter = new OutputStreamWriter(socketOut);
			
			socketWriter.write(returnCode);
			socketWriter.flush(); //if we don't do this, can't guarantee that the data will be written across the socket in a timely manner
		} catch(Exception e) {
			e.printStackTrace();
		}
		
		finally {
			try {
				client.close();
			} catch(Exception e) {
				e.printStackTrace();
			}
		}
	}