protected void creerCommunication() throws IOException {
		this.communication = new Socket(this.nomServeur, this.portServeur);
		this.fluxEntree = new BufferedReader(new InputStreamReader(communication.getInputStream()));
		this.fluxSortie = new PrintStream(communication.getOutputStream());
		
		// Crée un fil d'exécution parallèle au fil courant
		threadComm = new SwingWorker<Object,String>(){
			@Override
			protected Object doInBackground() throws Exception {
				firePropertyChange(ClientConnexion.PROPRIETE_DEBUT, null, (Object) ".");
				
				while(true){
					Thread.sleep(DELAI_REQUETES);
					
					if (fluxEntree.readLine().indexOf("commande>") != -1) {
						String reponseServeur;
						fluxSortie.println(REQUETE_FORME);
						
						if ((reponseServeur = fluxEntree.readLine()) != null && listener != null) {
							firePropertyChange(ClientConnexion.PROPRIETE_FORME, null, reponseServeur);
						}
					}
				}
			}
		};
		
		if(listener != null) {
		   threadComm.addPropertyChangeListener(listener); // La méthode "propertyChange" de ApplicationFormes sera donc appelée lorsque le SwinkWorker invoquera la méthode "firePropertyChanger" 
		}
		threadComm.execute(); // Lance le fil d'exécution parallèle.
		actif = true;
	}