public Socket makeConnection(String ipAddress, int port) {
		//The socket used to connect to the server
		socket=null;
		//The PrintWriter
		out = null;
		//The BufferedReader
		in = null;
		//The string that represents the messages coming from this class/from the cleint machine
		String fromPlayer=null;
		//The string that represents the messages coming from the host machine/from the machine that this class would be connecting to
		String fromHost=null;
		    
		try{
			//This is where we actually connect to the host machine
			socket= new Socket(ipAddress, port);
			//Initializing the PrintWriter
			out= new PrintWriter(socket.getOutputStream(),true);
			//Initializing the BufferedReader
		    in= new BufferedReader(new InputStreamReader(socket.getInputStream()));
		}catch(UnknownHostException e){
			print("The host is unknown!");
		}catch(IOException e){
			print("There was an ioException");	
		}
		print("The connection was accepted, starting the communications");
		try{
			//Tricky. If the host is not responding or sending blank messages, we don't have to handle them, and we break out of this and close the connection
			//We set the fromHost variable to whatever the BufferedReader reads in from the connection
			while((fromHost=in.readLine())!=null){
				//We then proccess the message, but first we filter the message using the gamePlayMessages to make sure that it is not an erroneous message
				if(gamePlayMessages(fromHost) || !turnSet){
					print("From Host: "+fromHost);
					//If the message is not erroneous, then we can process it. Passing the socket, BufferedReader or PrintWriter may not not be necessary
					//The processMessage will respond to the message by interacting with the UI through the UIBridge and/or sending a message back to the
					//host machine.
			    	fromPlayer=processMessage(fromHost,in,out,socket);
			    	print("FromPlayer: "+fromPlayer);
			    	//We then write whatever if coming from the process message to the socket, which transmits it to the host machine.
			    	out.println(fromPlayer);
				}
				//If we say "bye" to the host, or the host says "bye" to us, we break from the while loop, which will close all of our socket connections.
		    	if(fromPlayer.equals("bye") || fromHost.equals("bye")){
		    		break;
		    	}
		    }
			//Closing the socket connection, the BufferedReader, and the PrintWriter
		    destroyConnection();
		    
			}catch(IOException e){
				//Close the connections, and then we tell the UI that the game has been terminated..
				destroyConnection();
				uiBridge.gameTerminated();
				print("IOException:"+e);
		  
		    }		    	
			return socket;
		}