Envie de codage -> Un sort de TCHAT mais connais rien ! - Java - Programmation
Marsh Posté le 08-11-2002 à 23:12:55
Y a un bouquin qui a l'air pas mal pour ca :
programmation réseau avec java
Elliotte Rusty Harold
chez o'reilly ( www.oreilly.com )
Je peux pas te dire ce qu'il vaux, je viens de le commencer
Marsh Posté le 08-11-2002 à 23:52:27
bah si tu connais la prog réseau, un coup de javadoc ca devrait largement suffir
Marsh Posté le 09-11-2002 à 11:49:32
HappyHarry a écrit a écrit : bah si tu connais la prog réseau, un coup de javadoc ca devrait largement suffir |
je lit en ce moment des docs sur la prog reseaux mais un truc que je comprend pas, c qu'en loccurence il faudra un prog tournant sur le server et l'autre chez le client ( surement un applet vu que c sur le net )
mais la je peut faire pour faire mes tests, qu'utiliser comme serveur, etc..
Si quelqu'un a deja programmez ca, ou peut vraiment me lancer, ca serait sympatoche !
Marsh Posté le 09-11-2002 à 13:36:28
si tu veux faire un chat en applet alors tu peux utiliser un serveur apache et tu te connecterais en localhost
Marsh Posté le 09-11-2002 à 13:37:46
moi deja j'eviterais les applet, c'est un peu trop limité
Marsh Posté le 09-11-2002 à 13:38:48
en gros, faut deja te decider, tout centralisé, tout en p2p, un mix des 2 ?
ensuite pour tester, client et serveur on parle de logiciels, rien ne t'empeche de faire tourner les deux sur la même machine.
Marsh Posté le 09-11-2002 à 13:49:52
ok donc pas d'applet, je supposais juste simplement sans savoir
qu'apelle tu "tout centralisé" ou "p2p" ?
Ce que je voudrais c un tchat, auquel on se connecte avec login, et on puisse discuter soit avec tout le monde a la fois soit un PV, un sorte d'IRC mais sur le net.
avec un seul salon principal seulement
Marsh Posté le 09-11-2002 à 13:53:35
note: irc est sur le net... tu confondrais pas net et web par hasard ? si oui, oublie ce que j'ai dit, et fait une applet, y'a pas trop d'autre moyen.
Par centralisé, je voulais dire :
un serveur, pleins de clients, un client envoie un message au serveur qui le diffuse aux clients concernés
Par peer to peer, je voulais dire :
connexion directe entre clients, les messages ne passent pas par le serveur
et hybride, ca aurait été les messages pour tout le monde par le serveur, les pv et les fichier en p2p.
Donc en applet t'as pas trop le choix, t'es obligé de centraliser. Mais tu vas être vachement emmerdé, parce que les applets ne peuvent que se connecter sur la machine qui les héberge, donc il faut que ton serveur de chat soit sur la meme machine que ton serveur web.
Marsh Posté le 09-11-2002 à 13:56:19
lorill a écrit a écrit : note: irc est sur le net... tu confondrais pas net et web par hasard ? si oui, oublie ce que j'ai dit, et fait une applet, y'a pas trop d'autre moyen. Par centralisé, je voulais dire : un serveur, pleins de clients, un client envoie un message au serveur qui le diffuse aux clients concernés Par peer to peer, je voulais dire : connexion directe entre clients, les messages ne passent pas par le serveur et hybride, ca aurait été les messages pour tout le monde par le serveur, les pv et les fichier en p2p. Donc en applet t'as pas trop le choix, t'es obligé de centraliser. Mais tu vas être vachement emmerdé, parce que les applets ne peuvent que se connecter sur la machine qui les héberge, donc il faut que ton serveur de chat soit sur la meme machine que ton serveur web. |
voila ce que je veut faire, tu a trouver :
[B]
et hybride, ca aurait été les messages pour tout le monde par le serveur, les pv et les fichier en p2p.
[/B]
et pour la confusion net et web désolé...tu pourrais expliquer rapido la différence pour toi ?
Marsh Posté le 09-11-2002 à 13:58:10
ben le net, c'est internet.
le web, c'est une pitie partie d'internet, tout ce qui passe par http. des que tu fais du ftp ou du icq ou autre, ca n'a plus rien a voir avec le web.
Marsh Posté le 09-11-2002 à 14:01:17
lorill a écrit a écrit : ben le net, c'est internet. le web, c'est une pitie partie d'internet, tout ce qui passe par http. des que tu fais du ftp ou du icq ou autre, ca n'a plus rien a voir avec le web. |
oki daccord
et pour la partie tchat maintenant fé comment plz ?
Marsh Posté le 09-11-2002 à 14:03:39
ben si c'est en web, faut que tu fasses des applets et que tu sois totalement centralisé.
pour le reste, ben regarde les classes java.net.ServerSocket pour le serveur, et java.net.Socket pour le client. A part 2/3 trucs réseau, le reste fonctionne avec des flux identiques a ceux des fichiers, donc ca devrait pas te poser de probleme.
Marsh Posté le 09-11-2002 à 14:07:27
lorill a écrit a écrit : ben si c'est en web, faut que tu fasses des applets et que tu sois totalement centralisé. pour le reste, ben regarde les classes java.net.ServerSocket pour le serveur, et java.net.Socket pour le client. A part 2/3 trucs réseau, le reste fonctionne avec des flux identiques a ceux des fichiers, donc ca devrait pas te poser de probleme. |
arf dommage, le truc du HYBRIDE cetais exactement ce que je voulais
de toute facon ya moyen d'arrivé au meme resultat par le centralisé ?
Bah jvais allé jetté un coup d'oeil sur les classes que tu ma dit
mais ca a lair assez compliqué
merchi
Marsh Posté le 09-11-2002 à 14:09:59
Point de vue utilisation, oui tu peux arriver au meme resultat.
Quand tu envoies au serveur, tu précise le destinataire. Le serveur ne diffuse que vers ce destinataire. Apres tu peux créer un destinataire spécial qui correspond a l'envoi a tout le monde.
Et sinon ben je peux pas t'aider plus sans faire le prog a ta place et te gacher ce plaisir, mais si t'as des problemes particuliers hesite pas a poster
Marsh Posté le 09-11-2002 à 14:21:29
lorill a écrit a écrit : Point de vue utilisation, oui tu peux arriver au meme resultat. Quand tu envoies au serveur, tu précise le destinataire. Le serveur ne diffuse que vers ce destinataire. Apres tu peux créer un destinataire spécial qui correspond a l'envoi a tout le monde. Et sinon ben je peux pas t'aider plus sans faire le prog a ta place et te gacher ce plaisir, mais si t'as des problemes particuliers hesite pas a poster |
EDIT : jviens de trouvé ca mais c pas en applet c a peu pres ca dont tu me parlais ?
Code :
|
Code :
|
Marsh Posté le 09-11-2002 à 15:22:00
VOILA
je l'ai modifier de maniere a ce que le client envoie des messages saisie au clavier au server, et il sarrete quand il recois un END
Code :
|
Code :
|
Mais quand je lance, un éxécution du SERVER et 2 éxecution de CLIENT seul le premier CLIENT arrive a discuter avec le serveur, comment ca se fait ?
Marsh Posté le 09-11-2002 à 15:27:49
Tu dois créer dans ton serveur une instance de la classe Socket par client, et les mettre dans un tableau de clients.
Par contre ne me demande pas de le coder en Java, j'y connais nibe !!
Marsh Posté le 09-11-2002 à 15:28:15
t'as envie de coder ou envie de pomper ?
si c l'option 1 tu t'y prends mal
Marsh Posté le 09-11-2002 à 15:30:38
HappyHarry a écrit a écrit : t'as envie de coder ou envie de pomper ? si c l'option 1 tu t'y prends mal |
jai envie de coder
mais je n'aime pas partir de rien, j'aime apprendre par lexemple concret j'ai toujours été comme ca
mais ceci ne veut pas dire que je ne veut pas coder loin de la !
Marsh Posté le 09-11-2002 à 15:33:43
ben y a des tutos sur le net, plein
commence par faire des petits exos genre client/serveur echo, daytime etc etc
et le chat tu commenceras quand tu maitriseras la prog reseau en java (c pas dur)
Marsh Posté le 09-11-2002 à 15:40:35
HappyHarry a écrit a écrit : ben y a des tutos sur le net, plein commence par faire des petits exos genre client/serveur echo, daytime etc etc et le chat tu commenceras quand tu maitriseras la prog reseau en java (c pas dur) |
c'est ce que je suis en train de faire depuis ce matin
ca a l'air cool en tout cas le java pour ca !
Marsh Posté le 09-11-2002 à 16:19:14
HappyHarry a écrit a écrit : t'as envie de coder ou envie de pomper ? si c l'option 1 tu t'y prends mal |
j'en connais d'autres qui ont envie de coder, mais qui inconsciemment se trouvent plein d'excuses pour ne jamais commencer
Marsh Posté le 09-11-2002 à 16:31:48
lorill a écrit a écrit : j'en connais d'autres qui ont envie de coder, mais qui inconsciemment se trouvent plein d'excuses pour ne jamais commencer |
ptdr !!!
Marsh Posté le 09-11-2002 à 16:40:26
lorill a écrit a écrit : j'en connais d'autres qui ont envie de coder, mais qui inconsciemment se trouvent plein d'excuses pour ne jamais commencer |
Marsh Posté le 09-11-2002 à 20:15:15
voila voila on reviens
Apres des recherches sur le net voila ce que ca donne en gros (je lavoue jai pas mal pompé mais bon jai relut et esayé de comprendre bien sur)
Code :
|
Code :
|
Rien de bien compliqué, maintenant le serveur permet plusieurs clients qui lui envoie des messages ecrit qu'il affiche et lui renvoie
Maintenant je voudrais commencer quelquechose de + sophistiqué, juste un peu , maintenant pouvoir donné de tout ca, combien de client sont sur le serveur et commencer a gerer la parlote
par quoi je commence plz ? Je suis perdu...
Marsh Posté le 09-11-2002 à 20:58:48
ben pou rle moment quand tu recois un message tu l'affiches sur System.out. Au lieu de ca, tu recuperer les socket des autres clients (qu'il faut donc que tu stockes) et tu ecris dessus...
Marsh Posté le 09-11-2002 à 21:40:18
lorill a écrit a écrit : ben pou rle moment quand tu recois un message tu l'affiches sur System.out. Au lieu de ca, tu recuperer les socket des autres clients (qu'il faut donc que tu stockes) et tu ecris dessus... |
euh.... i dont understand what you want to say...
speek slowly please
Marsh Posté le 10-11-2002 à 02:08:45
ben le monsieur te dit que, au lieu d'ecrire les messages recus sur la sortie standard, tu les forwardes sur les sockets vers les clients
Marsh Posté le 10-11-2002 à 12:01:11
HappyHarry a écrit a écrit : ben le monsieur te dit que, au lieu d'ecrire les messages recus sur la sortie standard, tu les forwardes sur les sockets vers les clients |
ok mais il m'a parlé de stockage des sockets client, ce qui reste normal mais je vois pas a quel endroit le faire en fait...
ta pas une ID ?
Marsh Posté le 10-11-2002 à 14:28:57
casquetta a écrit a écrit : ok mais il m'a parlé de stockage des sockets client, ce qui reste normal mais je vois pas a quel endroit le faire en fait... ta pas une ID ? |
dans ton serveur, tu mets un tableau, un vecteur, ou autre, et apres le accept, tu fous la socket recupérée dans cette structure.
Note: ca n'a rien a voir avec du reseau, ca, je croyais que tu connaissais java
Marsh Posté le 10-11-2002 à 14:48:00
lorill a écrit a écrit : dans ton serveur, tu mets un tableau, un vecteur, ou autre, et apres le accept, tu fous la socket recupérée dans cette structure. Note: ca n'a rien a voir avec du reseau, ca, je croyais que tu connaissais java |
c'est pas le probleme du stockage dans un tablo qui me gene, c plutot le fonctionnement apres
j'ai du mal a cerner, malgré que j'ai lut quelques tutor sur socket, serverSocket etc...
Marsh Posté le 10-11-2002 à 14:53:26
c'est vraiment le genre d'appli pour laquelle tu auras pas de mal à trouver de la doc !
Marsh Posté le 10-11-2002 à 14:59:22
bon jai sotcker ca dans une ArrayList ca donne :
Code :
|
le truc c que je vous avais pas parlé d'un probleme :
mes clients pour l'instant ecoute simplement ce que raconte le serveur et on juste le droit de donné leur nom au depart de la discussion
Cependant j'aimerais qu'il puisse envoyé des messages quand il le veule et en meme temps pouvoir recevoir les reponses et messages emis du server (logique)
cependant ca reste problematique :
Si je met un while(message="exit" ) par exemple et a l'interieur une laternance ecoute, envoie de message, c la merde puisque le client sera obligé denvoyé un message pour ecouter
vous voyez ce que je veut dire ?
Faudrait un truc qui fasse que le client puisse recevoir et emmetre un message vers le serveur en MEME TEMPS
someone have an idea ?
Marsh Posté le 10-11-2002 à 14:59:26
Pourquoi tu ferais pas carrément un client IRC en java ? Au moins tu pourrais bénéficier de l'architecture existante pour ce qui est des serveurs.
Marsh Posté le 10-11-2002 à 15:00:51
Matafan a écrit a écrit : Pourquoi tu ferais pas carrément un client IRC en java ? Au moins tu pourrais bénéficier de l'architecture existante pour ce qui est des serveurs. |
pkoi pas
ta des infos la dessus ? et je peut ensuite programmer une interface graphique pour le web pour la gestion des clients et message ?
Marsh Posté le 10-11-2002 à 15:08:49
casquetta a écrit a écrit : ta des infos la dessus ? et je peut ensuite programmer une interface graphique pour le web pour la gestion des clients et message ? |
uniquement si le serveur irc est sur la meme machine que le serveur web
Marsh Posté le 10-11-2002 à 15:23:23
L'applet pourrait aussi communiquer directement avec le serveur IRC.
Tu peux lire les RFC sur :
Les deux dernier liens concernant surtout la partie serveur.
Marsh Posté le 10-11-2002 à 15:27:53
casquetta a écrit a écrit : pkoi pas ta des infos la dessus ? et je peut ensuite programmer une interface graphique pour le web pour la gestion des clients et message ? |
sinon, la description du protocole IRC est dispo ici, bien plus abordable que les RFC
www.salemioche.com
Marsh Posté le 08-11-2002 à 23:05:24
Voila, en JAVA je me debrouille un peu mais je connais rien a la partit reseaux, et jaimerais faire une sorte de tchate, c une envie qui m'a pris lol
pourriez vous me donnez une piste ou autre pour demarrer ?
Merci a vous