TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : 1 2 Suivante | |||||
| Auteur | Message | ||||
|---|---|---|---|---|---|
| 1 visiteur sur ce sujet (1 anonyme) | |||||
| Page : 1 2 Suivante | |||||
zydra
|
# Posté le 08/06/2008 à 19:25:59 | ||||
|
Groupe : Membres |
Bonjour, ca fait deja quelques temps que j'etudie les socket, et je viens de finir un truc tout con:
Une socket serveur qui lit ce que le client lui envoie, et lui renvoie un message comme quoi sa ligne a bient ete lu, et une socket cliente qui envoie un message et qui recoit un message de la socket serveur. Tout ce beau monde utilise le protocole TCP. Bien entendu, si je suis ici, c'est que ca ne marche pas^^. Effectivement, quand je lance ma socket serveur, puis ma socket cliente, rien ne s'affiche, aucun message d'erreur, mais rien ne s'affiche. Voici le code de ma socket serveur: Code : Java
et mon code cote client: Code : Java
(c'est normal que le client ne gere pas les exception, je feraica quand ca marchera) Voila, merci d'avance le monde appartient a ceux qui le detruisent |
||||
scboffspring
|
# Posté le 08/06/2008 à 20:59:04 | ||||
|
Groupe : Membres |
Tu utilise des buffered...
Donc pour envoyer quelque chose, tu dois utiliser : writer.flush(); Normalement après ça marche
|
||||
dangerous
|
# Posté le 08/06/2008 à 23:37:00 | ||||
|
Groupe : Membres |
Je te suggère d'utiliser un PrintWriter au lieu d'un BufferedWriter.
Si tu fais ça, lors de la création de ton PrintWriter, n'oublie pas de passer "true" comme deuxieme paramètre, cela permet de passer le flux en autoflush : après chaque appel de println, le flux sera flush. Un très bon document (celui grâce auquel j'ai appris à utiliser les sockets en java ) : http://queinnec.perso.enseeiht.fr/Ens/ [...] ket-java.html
|
||||
zydra
|
# Posté le 09/06/2008 à 20:47:56 | ||||
|
Groupe : Membres |
Ok merci a vous pour votre aide.
scboffspring, j'utilise un flush. Pas au bon endroit? Sinon merci de tuto, mes printWriter, mais flux ne seront pas bufferisé et je ne pourai plus envoye directement de String si? en tout cas merci le monde appartient a ceux qui le detruisent |
||||
QuentinC 2
|
# Posté le 09/06/2008 à 21:02:17 | ||||
|
Étudiant qui bosse ... ou pas Groupe : Membres |
Si, les PrintWriter sont bufférisés.
java.lang.BrainNotFoundException : neuron connection failure Javascript, php, html, jeux, blagues, etc. == http://quentinc.net/ |
||||
zydra
|
# Posté le 09/06/2008 à 21:05:17 | ||||
|
Groupe : Membres |
Et quelles sont les avaages d'utiliser les PrintWriter?
Sinon, j'ai bien flusher le buffer, juste apres la ligne d'ecriture, et ca ne marche toujours pas. le monde appartient a ceux qui le detruisent |
||||
scboffspring
|
# Posté le 09/06/2008 à 21:36:43 | ||||
|
Groupe : Membres |
Citation : zydra
Ok merci a vous pour votre aide. scboffspring, j'utilise un flush. Pas au bon endroit? Sinon merci de tuto, mes printWriter, mais flux ne seront pas bufferisé et je ne pourai plus envoye directement de String si? en tout cas merci Ouais... Car là, vu que tu attends de recevoir quelque chose, et que t'as pas encore envoyer ton truc, ça va pas marcher... Faut faire ton flush() juste après avoir écrit tes données (write()). Après ça marchera ![]() Et personnellement, les buffered sont bien meilleurs... Mais bon... |
||||
QuentinC 2
|
# Posté le 09/06/2008 à 22:58:32 | ||||
|
Étudiant qui bosse ... ou pas Groupe : Membres |
Les PrintWriter ont plusieurs avantages : 1/l'autoflush et surtout 2/plus de méthodes pour envoyer des string, des types primitifs, des chaînes formatées, etc. Tu utilises aussi facilement un PrintWriter que la sortie standard System.out (ce dernier est un PrintStream mais les méthodes disponibles sont assez similaires)
java.lang.BrainNotFoundException : neuron connection failure Javascript, php, html, jeux, blagues, etc. == http://quentinc.net/ |
||||
scboffspring
|
# Posté le 09/06/2008 à 23:38:05 | ||||
|
Groupe : Membres |
L'auto-flush? Mouais... Bof... Permet moins de gérer quand on a envie d'envoyer les données sur le réseaux... Plus intéressant selon l'utilisation de géré quand on veut envoyer notre objet sur le résesau...
Ma fois, chacun ces goûts comme on dit =) |
||||
dangerous
|
# Posté le 10/06/2008 à 02:01:53 | ||||
|
Groupe : Membres |
l'avantage non négligeable d'un PrintWriter, outre la possibilité d'activer l'autoflush, c'est surtout d'être vraiment transparent à l'utilisation : Il suffit d'appeler par exemple println sur le flux pour écrire une string... Très propre dans l'esprit je trouve
|
||||
QuentinC 2
|
# Posté le 10/06/2008 à 08:50:53 | ||||
|
Étudiant qui bosse ... ou pas Groupe : Membres |
Citation
L'auto-flush? Mouais... Bof... Permet moins de gérer quand on a envie d'envoyer les données sur le réseaux... Plus intéressant selon l'utilisation de géré quand on veut envoyer notre objet sur le résesau... L'autoflush intervient à chaque changement de ligne. Un bon nombre de protocoles réseau fonctionnent en ascii et la fin d'une commande se termine par un saut de ligne (HTTP, POP, IMAP, FTP, IRC, etc, etc.). Donc c'est tout à fait justifié et ne gène en rien les échanges... java.lang.BrainNotFoundException : neuron connection failure Javascript, php, html, jeux, blagues, etc. == http://quentinc.net/ |
||||
zydra
|
# Posté le 10/06/2008 à 20:05:27 | ||||
|
Groupe : Membres |
ca ne marche toujours pas. Revoici les 2codes:
client: Code : Java
voici le serveur: Code : Java
le monde appartient a ceux qui le detruisent |
||||
damdams75
|
# Posté le 10/06/2008 à 20:24:41 | ||||
|
Groupe : Membres |
Il faut rajouter \n a la fin de tes chaines de caractère.
|
||||
zydra
|
# Posté le 10/06/2008 à 20:34:03 | ||||
|
Groupe : Membres |
ca ne marche toujours pas. J'ai mit \n apres "votre ligne a bien ete lu\n" et apres "yoann\n"
Mais ca ne change rien Sinon merci le monde appartient a ceux qui le detruisent |
||||
damdams75
|
# Posté le 10/06/2008 à 20:39:01 | ||||
|
Groupe : Membres |
Le code suivant marche parfaitement chez moi. As tu une exception qui se déclenche sinon ?
Code : Java
|
||||
zydra
|
# Posté le 11/06/2008 à 16:56:30 | ||||
|
Groupe : Membres |
Je vais essaye en lui faisan elver une exception.
le monde appartient a ceux qui le detruisent |
||||
zydra
|
# Posté le 13/06/2008 à 21:48:08 | ||||
|
Groupe : Membres |
Ok, je viens de ressayer sans rien changer et ca marche. Bizare, enfin on va pas se plaindre.
Merci pour votre aide le monde appartient a ceux qui le detruisent |
||||
daedric
|
# Posté le 15/06/2008 à 21:47:39 | ||||
|
Groupe : Membres |
tu avais peut etre oublie de recompiler
resolu
"n'est pas mort ce qui semble a jamais dormir et en d'étranges temps même la mort peut mourrir" |
||||
zydra
|
# Posté le 16/06/2008 à 20:38:14 | ||||
|
Groupe : Membres |
Pour un nouveau projet, on m'a conseillé d'utiliser un socketOutputStream(pour envoyer un tableau de byte en pricisan la taille et tout), genre:
socketOutputStream.write(tableauDeByte,0,taille); Mais, le probleme c'est que je ne sais pas comment se forme socketInputStream, quelqu'un pourrait il me donner un exemple? Merci d'avance le monde appartient a ceux qui le detruisent |
||||
daedric
|
# Posté le 16/06/2008 à 22:43:27 | ||||
|
Groupe : Membres |
cadeau:
Code : Java
ensuite ce qui est pas mal c'est de faire des classe generique pour balader tes infos dans un de mes dernier projet (encore inacheve et qui remonte a loins mais par manque de temps ....) j'utilise une classe de ce genre la : Code : Java
je jouais avec les interfaces pour savoir quelle methodes j'avais le droit d'appeler ou pas je met pas tout le code ya trop de dependance et je veux juste te donner une idee de ce qui est faisable "n'est pas mort ce qui semble a jamais dormir et en d'étranges temps même la mort peut mourrir" |
||||
zydra
|
# Posté le 17/06/2008 à 18:20:13 | ||||
|
Groupe : Membres |
Alors la merci beaucoup, bien que je ne comprenne presque rien, je pense que ca va quand meme m'aider.
Encore merci le monde appartient a ceux qui le detruisent |
||||
daedric
|
# Posté le 18/06/2008 à 17:23:19 | ||||
|
Groupe : Membres |
la premiere certainement la seconde plus tard peut etre
avec la classe Message je transferer n'importe quel donnee et je pouvais savoir quoi recuperer en fonction du type du message ... la premiere te propose juste des methodes pour lire et ecrire sur la socket un peu plus simplement ... pourla lecture utilise Scanner "n'est pas mort ce qui semble a jamais dormir et en d'étranges temps même la mort peut mourrir" |
||||
zydra
|
# Posté le 18/06/2008 à 19:07:34 | ||||
|
Groupe : Membres |
Ok, le debut de mon projet est terminé, j'arrive a recopier un fichier, quelque soit sa taille, et ca marche très bien.
Maintenant je dois faire en sorte que le client se connecte au serveur de n'importe quel pc, donc pas qu'en local, je fais donc: Code : Java
et ca ne marche pas, message d'erreur, la socket ne se connecte pas au serveur. As tu une autre solution, ou sais tu pourquoi ca ne marche pas? le monde appartient a ceux qui le detruisent |
||||
zydra
|
# Posté le 26/06/2008 à 18:27:14 | ||||
|
Groupe : Membres |
up
Toujours le meme probleme. Si je mets des adresses locales, ça marche mais dès qu'on passe aux adresses internet, le client ne se connecte plus. le monde appartient a ceux qui le detruisent |
||||
QuentinC 2
|
# Posté le 26/06/2008 à 22:41:56 | ||||
|
Étudiant qui bosse ... ou pas Groupe : Membres |
C'est peut-être con à dire, mais commence par vérifier les firewalls & co... il n'y a pas de raison que ça marche dans un réseau local mais pas en ligne.
java.lang.BrainNotFoundException : neuron connection failure Javascript, php, html, jeux, blagues, etc. == http://quentinc.net/ |
||||
Dark-Side
|
# Posté le 27/06/2008 à 01:41:25 | ||||
|
Groupe : Membres |
Citation : daedric
tu avais peut etre oublie de recompiler lawlz ... Bon sinon, mon post ne sera d'aucune utilité direct pour ton problème, seuleument « décoratif », ou plutôt pour te montrer comment on ferait dans d'autres langages, en l'occurence Erlang : Le serveurCode : Erlang
Note que je gère explicitement la déconnexion, je ne sais pas si c'est implicite en Java où si tu as tout simplement oublié de le faire mais bon voilà... moi je le fais. De plus mon serveur tournera tant que le client sera connecté, et ne s'arrêtera pas à la réception du premier message. Le clientCode : Erlang
Bon voilà, ce sera tout. À noter que je me suis basé sur ton premier code, je n'ai pas tenu comte des ajouts ayant été faits ensuite... Voilà, à toutes les personnes qui ont prévu de me critiquer : je ne repasserai probablement pas sur ce forum, donc vous perdez votre temps. Ensuite pour ceux qui voudraient se jetter sur l'occasion : ce n'est pas un troll, je ne critique pas le Java ni ne fait l'apologie de l'Erlang sur le Java, c'est juste pour montrer aux zéros passant ici « comment on fait ailleurs ». Sur ce, bonne soirée.
Édité
le 27/06/2008 à 01:43:00
par Dark-Side
|
||||
daedric
|
# Posté le 29/06/2008 à 07:37:18 | ||||
|
Groupe : Membres |
met tout ton code et explicite l'installation ...
tout est en local ? si oui tu as bien mis les memes port ? si c'est sur deux machine differentes, sont elle sur le meme sous reseau ? si oui firewall ? sinon routage de port ? firewall ? "n'est pas mort ce qui semble a jamais dormir et en d'étranges temps même la mort peut mourrir" |
||||
zydra
|
# Posté le 30/06/2008 à 11:08:59 | ||||
|
Groupe : Membres |
A mon avis c'est un probleme de pare feu avec la livebox.
Parce que en local les pc sont dans le meme groupe de travail et tout. J'ai bien mis le meme port. Je vous tiens a courant. edit: tout conte fait, meme sans le pare feu de la livebox ca ne marche pas. Je ne vos vraiment pas ou es le probleme surtout qu'avec les adresse locales, ca marche du tonerre^^.
Édité
le 30/06/2008 à 19:30:26
par zydra
le monde appartient a ceux qui le detruisent |
||||
zydra
|
# Posté le 03/07/2008 à 09:52:31 | ||||
|
Groupe : Membres |
up
toujours pas d'idées? Est ce que ca viendrai du fait que les 2 pc que j'essaye de faire communiquer des pc qui sont en local, mais que dans le client du pc1 je met l'adresse public(intenet) du pc2? le monde appartient a ceux qui le detruisent |
||||
daedric
|
# Posté le 05/07/2008 à 18:05:34 | ||||
|
Groupe : Membres |
possible
ca fais dix ans qu'on te demande les adresses que tu entres et ce genre de chose... "n'est pas mort ce qui semble a jamais dormir et en d'étranges temps même la mort peut mourrir" |
||||
Retour au forum "Langage Java" ou à la liste des forums
Vous devez être inscrit pour pouvoir poster des messages
Changer de design |
En savoir plus |
Plan du site |
Politique d'accessibilité |
Règles |
RSS tutoriels |
RSS news
Édité par Simple IT SARL :
Nous contacter
| Notre blog | Revue de presse | Publicité
Y'a plus rien à lire, faut remonter maintenant !
Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.
126 Zéros connectés |
8 requêtes |
0.0768s (0.0563s)
