Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème de dessin en client serveur [ Archives / Au secours ] (saispasq)

vendredi 14 mai 2004 à 14:30:18 | Problème de dessin en client serveur

saispasq

Salut à tous, j'ai une application client serveur en java qui permet à un ensemble de clients de partager un dessin graphique et de dessiner ensemble des formes géométriques (cercles, rectangles, ...). Cette application ne permet pas aux clients qui se connectent en retard (aprés) de voir ce qui est dessiner avant.
La source de cette application est disponible à l'adrese http://www.jibble.org/netdraw.php
SVP, aidez moi à trouver une solution car c'est trés urgent pour moi et ca fait parti de mon examin.
Merci d'avance.
(SVP repondez moi vite)
(j'ai posté ds plusieurs forums mais personne n'a pu me répondre, je compte sur vous)Merci.

samedi 15 mai 2004 à 09:55:04 | Re : Problème de dessin en client serveur

kirua12


Salut,

j'ai regardé brièvement le code et c'est normal que les nouveaux clients ne voient pas ce qui s'est passé avant.
Le serveur est juste chargé de la communication entre les clients. Il ne stocke pas les différentes action déjà effectuées.
Pour qu'un nouveau client récupère les dessins il faut lui envoyer la liste des actions correspondant aux dessins.
Le serveur doit stocker cette liste et quand un nouveau client arrive il lui envoie ces actions.
Après se pose le problème de 'jusqu'à quand on remonte dans le temps', c'est à dire quelle est la quantité d'actions que le serveur doit conserver. Il faut prévoir un système pour vider l'historique.

samedi 15 mai 2004 à 12:57:58 | Re : Problème de dessin en client serveur

hhouneida

Salut, Merci pour votre réponse, mais est ce que tu peux m'aider un peu à faire ce travail , juste comment commencer car dés que je touche le code je suis bombardé des erreurs. Je ne sais pas d'ou commencer ...

samedi 15 mai 2004 à 13:22:33 | Re : Problème de dessin en client serveur

kirua12


Je te donne quelques pistes pour commencer et si tu as du mal je te donnerais le code.
Il faut dans la classe NetDrawServer une liste des actions déjà effectuées. Cette liste sera passée aux ClientHandler.
Dans la classe ClientHandler il faut là aussi ajouter cette liste. Quand un client se connecte (la partie correspondant au if (tokens[0].equals("join"))) il faut lui envoyer la liste des actions
Et dans la classe ClientInputThread il faut ajouter dans la liste l'action qu'on vient de recevoir.

Voilà !!! bon courage !!

samedi 15 mai 2004 à 13:45:21 | Re : Problème de dessin en client serveur

hhouneida


Je te remerci beaucoup, mais j'ai du mal à avancer, SVP donnez moi du code...

samedi 15 mai 2004 à 14:02:49 | Re : Problème de dessin en client serveur

kirua12



public class NetDrawServer {
private List actions;
...
public NetDrawServer(int port) {
this.port = port;
actions = new Vector();
}
...
public void launch() {
...
while (running) {
try {
Socket socket = serverSocket.accept();
ClientHandler handler = new ClientHandler(socket, clientList, actions);
handler.start();
} catch (IOException e) {
System.out.println("Somebody jibbled up their connection when connecting.");
} catch (Exception e) {
System.out.println("Somebody tried to join the server in a jibbly way.");
}
}
...
}




public class ClientHandler extends Thread {

private List actions;
...
public ClientHandler(Socket socket, ClientList clientList, List actions) {
this.socket = socket;
this.clientList = clientList;
this.actions = actions;
}
....
public void run() {
...
if (tokens[0].equals("join")) {
name = tokens[1];
ClientOutputThread clientOutputThread = new ClientOutputThread(clientList, firstLine);
clientOutputThread.start();
//Envoie de la liste des actions effectuées précédemment
bwriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
Iterator iterator = actions.iterator();
while (iterator.hasNext()) {
writeLine((String) iterator.next());
}
} else {
socket.close();
return;
}
...}
...
public synchronized void addAction(String action) {
actions.add(action);
}

}



public class ClientInputThread extends Thread {
...
public void run() {
...
clientHandler.addAction(line);
ClientOutputThread clientOutputThread = new ClientOutputThread(clientList, line);
clientOutputThread.start();
...
}
}

samedi 15 mai 2004 à 14:14:19 | Re : Problème de dessin en client serveur

saispasq

Merci Kirua12, je vais essayé ce code.

lundi 17 mai 2004 à 12:54:47 | Re : Problème de dessin en client serveur

saispasq


Salut, Merci Kirua12 votre code marche trés bien. Tu m'as bien aidé.
Mais j'ai encore du problème.
Je veux créer des sessions pour quelques utilisateurs : c.a.d je veux que un certain nombre de clients dessinent ensemble, et si un client qui n'appartient pas à cette session il lui faudra créer une nouvelle session: plusieurs sessions qui s'éxécutent en parallèle.
Premièrement, est ce que cela est faisable avec cette application de client seveur, et si oui comment il faut que je procéde.
je vous remercie beaucoup mon ami.

lundi 17 mai 2004 à 20:32:58 | Re : Problème de dessin en client serveur

kirua12


si j'ai bien compris tu veux créer des salons de discussions (chatrooms). Oui c'est possible.
Il faut que le serveur gère la liste des salons. Au lieu d'avoir une seule liste de clients, il y a maintenant une liste (salons) de liste (clients). Le mieux se serait une Map avec comme clé l'identifiant du salon.
Il faut aussi modifier le protocole de communication client serveur pour que le client indique dans quel salon il veut aller.
Bref rien de bien compliqué...

mardi 18 mai 2004 à 14:12:14 | Re : Problème de dessin en client serveur

saispasq

Est ce que tu peux m'aider à faire cela?


1 2

Cette discussion est classé dans : problème, application, serveur, client, dessin


Répondre à ce message

Sujets en rapport avec ce message

problème de socket en j2me [ par PNLM ] Bonjour, J'ai réalisé une application client/serveur en java. Le client est une application en J2ME (qui permet d'envoyer des images, vidéos...) et l application client serveur [ par Memmesse ] Bonjour c ma première interrogation !! Donc j'espere avoir une réponse encourageante.. Je développe pour la première fois une application client serve application client serveur [ par pseudo85 ] Bonjour,je voudrais savoir si c'est possible de développer une application client serveur en utilisant les frames de JBuilder. si oui, comment faire? Application Client/Serveur FTP en Java [ par medalihentati ] Salut!Aidez moi!!!J'ai un travail à rendre qui consiste en une application Client/Serveur FTP  (Java)(avec une interface pour le client et une autre p Problème de réception en rtp [ par GIGN90 ] Bonjour à tous voilà j'ai une p'tite question. Je suis entrain de faire un programme client/serveur qui est en gros un chat audio où j'utilise RTP. Mo client serveur avec application fenêtrée ou servlet [ par amelA ] Bonjour,je dois développer une application client/serveur, mais j'hésite entre: - l'utilisation de deux applications fenêtrées (une pour le client et Transfert de fichier via une appli web entre un client et le serveur d'application [ par acoue ] Bonjour à tous, comme indiqué dans le titre,je dois faire un upload entre le disque dur du client et le serveur. Mon idée avait été la suivante : d [Question] Application client/Serveur utilisant JDBC [ par low_freak ] [Question] Application client/Serveur utilisant JDBC Bonjour à tous, Je recherche de l'information concernant , le passage de flux de donnée du serveu application C/S [ par anisneo1 ] hello every bodyje dois developper une application qui simule un distributeur automatique de boison.le serveur envoit la liste des produit , le client Mini application client-serveur [ par juanfabregas ] Bonjour le forum, Je souhaite developper une petite application Client / Server / Bdd avec Java mais pour commencer ,j'aimerai bien assimiler les opér


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.