SAVE FILE MANAGER - ENVOYER DES DONNÉES SUR UN SERVEUR EN JAVA
kirua12
Messages postés1155Date d'inscriptionsamedi 17 janvier 2004StatutMembreDernière intervention29 avril 2011
-
17 nov. 2009 à 12:09
maylo85
Messages postés5Date d'inscriptionjeudi 28 avril 2011StatutMembreDernière intervention11 mai 2012
-
11 mai 2012 à 08:34
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
maylo85
Messages postés5Date d'inscriptionjeudi 28 avril 2011StatutMembreDernière intervention11 mai 2012 11 mai 2012 à 08:34
non ca marche maintenant avec les deux.. je crois qu'il s'agit d'un problème de compilation dé le début, ta aucune erreurs chapeau
maylo85
Messages postés5Date d'inscriptionjeudi 28 avril 2011StatutMembreDernière intervention11 mai 2012 11 mai 2012 à 08:24
c bon je l'avais trouvé, il faut changé DIRECTORIES_ONLY par FILES_AND_DIRECTORIES dans le JFilechooser de la méthode recevoir et ca marche très bien
maylo85
Messages postés5Date d'inscriptionjeudi 28 avril 2011StatutMembreDernière intervention11 mai 2012 11 mai 2012 à 01:49
j'ai testé l'application et elle marche très bien meme avec 2 machine mais ta un seul problème c'est dans la classe recevoir l'application fait l'envoi avec la compression et la création d'un dossier avec le nom de ta session mais elle peut pas faire la réception je crois que le JFilechooser ne marche pas l'application fait la déconnexion avant quel affiche la fenetre de JFilechooser, en tout cas merci ton travail ma bien aidé pour comprendre plus le java. en+ t'avais que 17 ans quand ta réalisé ca, bravo
maylo85
Messages postés5Date d'inscriptionjeudi 28 avril 2011StatutMembreDernière intervention11 mai 2012 9 mai 2012 à 22:19
Merci beaucoup pour l'aide c'est très gentil de ta part
roddehugo
Messages postés70Date d'inscriptionsamedi 10 mai 2008StatutMembreDernière intervention29 octobre 2009 6 mai 2012 à 21:17
Salut, merci pour le compliment.
J'avoue que ça fait un petit moment que j'ai codé ça mais si mes souvenirs sont bon et re-regardant le code vite fait.
En fait il faut distinguer deux programmes. Un serveur et un client. Le serveur (class Serveur) doit tourner en continue et écoute un certain port sur le réseau local, il faut modifier ou paramétrer l'adresse et le port pour l'un et l'autre. Je ne sais plus si j'avais ajouté la modification depuis l'interface. Sinon il faut modifier l'adresse et le port directement dans le code et recompiler. Pour tester les deux programmes sur ton ordi tu dois mettre http://localhost dans l'adresse et choisir un port au dessus de 2000 pour être sur qu'il n'est pas déjà utilisé par un autre programme.
Ensuite la classe Serveur, comme je l'ai dit se contente d'afficher une fenêtre de log pour afficher les connections et les fichiers reçues. Il ne faut pas fermer la fenêtre. Sinon ça ferme le programme.
maylo85
Messages postés5Date d'inscriptionjeudi 28 avril 2011StatutMembreDernière intervention11 mai 2012 5 mai 2012 à 02:35
slt, un peu d'aide svp, je suis pas pro en java mais je trouve ton programme trés interresant et je voulé savoir c'est koi l'utilité de la classe serveur et quand l'interface serveur s'affiche et ou pk je ne voi ke l'interface client "fenetre" et j'ai essaié de faire l'execution avec 2 machine mais ca ne marche pas, merci d'avance
roddehugo
Messages postés70Date d'inscriptionsamedi 10 mai 2008StatutMembreDernière intervention29 octobre 2009 22 nov. 2009 à 09:39
salut,
As-tu essayer avec le .jar ?
Le exe sert pour l'install du .jar ;)
nourhanan
Messages postés26Date d'inscriptionsamedi 16 décembre 2000StatutMembreDernière intervention21 novembre 2009 21 nov. 2009 à 12:53
salut
j'arrive pas à installer votre application meme si que j'ai renommé les .ex_ en .exe
roddehugo
Messages postés70Date d'inscriptionsamedi 10 mai 2008StatutMembreDernière intervention29 octobre 2009 17 nov. 2009 à 16:27
Ça marche ;)
Je changerai tout cela bientôt dans une 2ème version.
Merci encore. Bonne fin d'aprem
kirua12
Messages postés1155Date d'inscriptionsamedi 17 janvier 2004StatutMembreDernière intervention29 avril 20117 17 nov. 2009 à 15:28
Oui c'est cela, tu ne dois avoir qu'un seul thread (l'EDT) qui manipule les composants graphiques. Si tu as des opérations longues tu les lances par un thread et la mise à jour des composants se met en file d'attente avec la classe SwingUtilities.
roddehugo
Messages postés70Date d'inscriptionsamedi 10 mai 2008StatutMembreDernière intervention29 octobre 2009 17 nov. 2009 à 14:51
Salut,
Merci pour tes commentaires tout d'abord.
J'ai lu l'article sur le threading et l'EDT en lien. Il y a quelques subtilités que j'ai du mal à saisir.
Mais en bref, il faut que toutes les actions avec les composants Swing le soit dans l'EDT ? Et donc depuis les autres Thread il ne doit pas y en avoir ? Mais je n'ai pas très bien compris la procédure à suivre pour faire ça :)
Pour le reste j'y remédierai dans la version corrigé qui suivra.
Merci
kirua12
Messages postés1155Date d'inscriptionsamedi 17 janvier 2004StatutMembreDernière intervention29 avril 20117 17 nov. 2009 à 12:09
C'est pas mal mais il y a 2-3 choses qui me choquent :
- pas de gestion des exceptions sur les flux : les méthodes close() ne sont pas dans des blocs finally
- la mise à jour des logs dans l'IHM ne se fait pas dans l'EDT et il n'y a pas d'utilisation de listener
- la classe serveur qui lance une IHM et la boucle d'attente des connexions en même temps. De mon point de vue, ça devrait séparé et ca te permettrait d'avoir un ActionListener sur la frame pour mettre à jour le TextArea
- côté client, pour l'IHM, il y a le même pb, mise à jour des données sans être dans l'EDT et traitement long dans le même thread
11 mai 2012 à 08:34
11 mai 2012 à 08:24
11 mai 2012 à 01:49
9 mai 2012 à 22:19
6 mai 2012 à 21:17
J'avoue que ça fait un petit moment que j'ai codé ça mais si mes souvenirs sont bon et re-regardant le code vite fait.
En fait il faut distinguer deux programmes. Un serveur et un client. Le serveur (class Serveur) doit tourner en continue et écoute un certain port sur le réseau local, il faut modifier ou paramétrer l'adresse et le port pour l'un et l'autre. Je ne sais plus si j'avais ajouté la modification depuis l'interface. Sinon il faut modifier l'adresse et le port directement dans le code et recompiler. Pour tester les deux programmes sur ton ordi tu dois mettre http://localhost dans l'adresse et choisir un port au dessus de 2000 pour être sur qu'il n'est pas déjà utilisé par un autre programme.
Ensuite la classe Serveur, comme je l'ai dit se contente d'afficher une fenêtre de log pour afficher les connections et les fichiers reçues. Il ne faut pas fermer la fenêtre. Sinon ça ferme le programme.
5 mai 2012 à 02:35
22 nov. 2009 à 09:39
As-tu essayer avec le .jar ?
Le exe sert pour l'install du .jar ;)
21 nov. 2009 à 12:53
j'arrive pas à installer votre application meme si que j'ai renommé les .ex_ en .exe
17 nov. 2009 à 16:27
Je changerai tout cela bientôt dans une 2ème version.
Merci encore. Bonne fin d'aprem
17 nov. 2009 à 15:28
17 nov. 2009 à 14:51
Merci pour tes commentaires tout d'abord.
J'ai lu l'article sur le threading et l'EDT en lien. Il y a quelques subtilités que j'ai du mal à saisir.
Mais en bref, il faut que toutes les actions avec les composants Swing le soit dans l'EDT ? Et donc depuis les autres Thread il ne doit pas y en avoir ? Mais je n'ai pas très bien compris la procédure à suivre pour faire ça :)
Pour le reste j'y remédierai dans la version corrigé qui suivra.
Merci
17 nov. 2009 à 12:09
- pas de gestion des exceptions sur les flux : les méthodes close() ne sont pas dans des blocs finally
- la mise à jour des logs dans l'IHM ne se fait pas dans l'EDT et il n'y a pas d'utilisation de listener
- la classe serveur qui lance une IHM et la boucle d'attente des connexions en même temps. De mon point de vue, ça devrait séparé et ca te permettrait d'avoir un ActionListener sur la frame pour mettre à jour le TextArea
- côté client, pour l'IHM, il y a le même pb, mise à jour des données sans être dans l'EDT et traitement long dans le même thread
Tu n'es pas dans le cadre d'une application Swing (voir http://gfx.developpez.com/tutoriel/java/swing/swing-threading/ par ex) et tu risques d'avoir des freeze d'IHM