@Override
		public void run() {
			//System.out.println("Client: Thread Start Send");
			PrintWriter out = null;
	        BufferedReader in = null;
	        String servLine = null;
	        if (sock == null) {
	        	return;
	        }
	        try {
	            out = new PrintWriter(sock.getOutputStream(), true);
	            in = new BufferedReader(new InputStreamReader(
	                                        sock.getInputStream()));
	        } catch (IOException e) {
	            System.err.println("No Buffered I/O for " + hostName + " " + portOne);
	            return;
	        }
	        
	        if (query.startsWith(" __test")) {
	        	String outReq = null;
				tgrep = new TestClientGrep(query);
	        	while ((outReq = tgrep.processInput(null)) != null) {
	        		out.println(outReq);
	        	}
	        	testmode = true;
	        } else {
	        	out.println("grep" + query);
	        }
	        
	        try {
	        	while ((servLine = in.readLine()) != null) {
	        		if (!testmode) {
	        			System.out.println("(" + hostName + "," + portOne + "): " + servLine);
	        		} else {
	        			tgrep.processInput(servLine);
	        		}
	        	}
	        	if (testmode) {
	        		System.out.println("TestMode: Diff is " + tgrep.diff);
	        	}
	        } catch (IOException e) {
	            System.err.println("Couldnot read from Buffered I/O " + hostName + " " + portOne);
	            return;
	        }
			//System.out.println("Client: Thread Finish Send");
		}