public void run() {
		//Setup sockets
		Socket skt = null;
		try {
			skt = new Socket(serverAddress,port+2);
			oos = new ObjectOutputStream(skt.getOutputStream());
		} catch (IOException e) {
			System.err.println("Error setting up ClientSender\nCan only listen");
		}
		//Inform user everyting is ready to GO (Both send/recieve active)
		client.onServerSet(true, serverAddress.toString());
		JOptionPane.showMessageDialog(null,"You can now send to the server\nServer detected at: "+serverAddress.toString());
		try {
			while(true) {
				pkt = client.getPacketToSend();
				oos.writeObject(pkt);
				oos.flush();
			}
		} catch (Exception e) {
			System.err.println("Lost connection to server");
			JOptionPane.showMessageDialog(null,"No Longer connected to server");
			client.onServerSet(false,"");
			// Reset Calling Thread so that it can be re-instantiated on next successful communication
			caller.invertRunParam(); // If server disconnects - resets client to 'searching'
		}
	}