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 !

MINI CHAT CLIENT-SERVEUR (UDP) AVEC TRANSFERT DE FCIHIER (TCP)


Information sur la source

Catégorie :Réseaux & Internet Classé sous : chat, tcp, udp, transfert, clientserveur Niveau : Initié Date de création : 01/05/2007 Date de mise à jour : 03/05/2007 12:24:35 Vu / téléchargé: 8 885 / 1 010

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

Description

Bonjour a vous,
Je veux realiser un chat client-serveur avec transfert de fichier. J'ai plusieurs questions

1) Si le serveur n'envoi pas de reponse a la reception du paquet client sa bug.
2)je l'ai teste avec un pote sur le reseau internet connection ok! mais probleme les paquets que recoit le serveur sont bizarre
mauvais pseudo et pas de texte help me?.


Pour la terminaison client et serveur c'est pas au point ca je me debroullerais. Mais je voudrais des avis sur mon programme et px etre des solutions.
@+ et merci

ps la source est sur la boucle locale.
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

02 mai 2007 10:57:08 :
Mise a jour j'ai juste netoye les archives pour enlever les ~ et les fichiers que j'avais oublier de supprimer dans le repertoire partage du serveur. Voila
03 mai 2007 12:09:12 :
J'ai modifié pas mal de bug l'upload vers le serveur a change il marche nickel. Le chat est toujours en UDP les paquets font moins de 1ko je pense donc qu'il arrive en une partie Ce programme a seulement été testé sous LINUX Avis au testeur
03 mai 2007 12:24:35 :
J'avis oublier de nettoyer les reps et de remettre le programme sur la boucle locale @+

Commentaires et avis

signaler à un administrateur
Commentaire de max12 le 01/05/2007 21:53:33 administrateur CS

Si sa ne fonctionne pas c'est pas vraiment la peine de le déposer :S Mais n'oublie pas que si tu envoie un packet il peut très bien recevoir en deux packets de l'autre côté surtout si tu n'est pas en LAN. Je te dis ça car c'est dans 90% des cas la cause du problème, ce que beaucoup ne savent pas.

signaler à un administrateur
Commentaire de CAVAVIN128 le 01/05/2007 22:08:05

C'est pas qu'il ne fonctionne pas du tout en LAN il marche nickel. Si le paquet arrive en plusieurs la solution ne serait elle pas de tester la taille que l'on rençoit afin d'aviser et de continuer la recption j'usqua avoir la totalite du paquet?
Avis au pro

signaler à un administrateur
Commentaire de max12 le 02/05/2007 08:39:32 administrateur CS

Non tu te complique pas la vie, tu met un caractère à la fin du packet qui indique la fin du message, ensuite tu créer un buffer de l'autre côté qui accumule les données entrantes et les traitent au fur et à mesure. Si jamais une donnée est incomplète il ne fera rien, il la laisse dans le buffer et attend. Une fois la donné complèté (détecter le caractère de fin de trame) il la traite et l'enlève du buffer et continu ainsi de suite ... sans fin.

signaler à un administrateur
Commentaire de CAVAVIN128 le 02/05/2007 08:48:43

Je sais pas si tu as regarde mon programme mais je passe mon message sous forme d'une structure.Penses tu que je dois revoir totalement mon appli? Pour detecter la fin dans une structure ca va etre cho?Pour le transfert ce que tu dis est vraiment pas bete.

signaler à un administrateur
Commentaire de max12 le 03/05/2007 09:09:49 administrateur CS

Ue structure c'est possible mais je ne te le conseil pas car tu devra envoyer des packets à tailles fixes. Place plutot simplement le caractère changement de ligne comme fin et sa devrait bien aller pour le traitement. http://www.cppfrance.com/codes/SERVEUR-MULTITHREAD-SOUS-LINUX-WINDOWS-MYSQL-VCPLUSPLUS-DEVCPLUSPLUS_40044.aspx

Dans mon code il y a une fonction assez simple a comprendre qui s'occupe de faire ça. Aussi concernant les structures tu risques d'avoir des problèmes avec les machines qui traitent en big endian/little endian (la dessus je dis peut-être une connerie, si quelqu'un veut confirmer/infirmer).

signaler à un administrateur
Commentaire de max12 le 03/05/2007 09:15:18 administrateur CS

Pendant que j'y repense UDP c'Est pas la meilleure politique car tu n'as aucune garantie que ton packet arrivera à destination ni que si tu en envoie plusieurs ils arriveront dans l'ordre à moins de créer un protocole de communication compliqué, ce qui reviendrais en définitive a faire du TCP.

En faîte l'avantage de UDP c'est qu'on peut faire du broadcasting lorsque l'on est en LAN, ce qui permet par exemple de transférer un fichier a 20 ordinateurs sans envoyer 20 fois le même fichier à chacune des personnes.

signaler à un administrateur
Commentaire de CAVAVIN128 le 07/05/2007 13:42:22

je voudrais avoir des critiques ainsi que des pistes d'ameliorations!!
avis au programmeur

signaler à un administrateur
Commentaire de albert0 le 09/05/2007 23:03:20

UDP -> protocole non sécurisé, parfait pour du video stream, ou voix sur ip (car inutile de Renvoyer un paquet)

TCP -> protocoles sécurisé, pour des applis (comme un chat...) où il est préferable de renvoyer si il n'est pas arriver à destination

Comme j'ai lue plus haut, (j'ai pas regardé le code), la taille maximum d'un paquet (ethernet) est de 1500 octets (un paquet Ip 65536 octets). Et donc si un de tes paquets est > 1500, il sera fragementé. les paquets contiennent deja des bits pour dire si c'est le dernier paquets ou pas.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Socket TCP/UDP [ par hobbes ] Bonjour,j ai cru comprendre qu il existe 2 types de sockets (TCP et UDP) pouvant permettre l echange de donnees entre 2 applications sur le reseau.Pou chat TCP/IP sous linux avec C [ par hassanamigos ] bonsoir tous le monde, alé aidez moi je vous en prie!HELP MEs'il vous pailt jé besion d'aide jé 12 projet sur le chat CLIENT/SERVEUR (T transfert d'une structure en C/C++ avec UDP [ par banjo12 ] Je vous explique mon petit probleme :  Pour notre projet d'IUT, on voudrait envoyer grace au protocole UDP une structure d'image (IPLimage d'inte Transfert de fichier TCP [ par remidub ] Bonjour,Je développe actuellement un logiciel qui nécessite des transferts de fichiers par TCP.En effet, je décompose les fichiers en petits paquets ( Programme ecoutant le traffic UDP-TCP [ par KoKa ] Bonjour,Je travaille sous linux et je voudrai ecrire un petit programme qui me permette de filtrer le traffic UDP et TCP avec un certain port de desti dévlopement d'un proxy (tcp-udp) avec Network Simulator [ par adil_2005 ] est ce que quelqu'un pourra m'indiquer où je peut trouver des exemples de sockets en c++ (merci d'avance :)) adil Liste des ports TCP [ par LaTatadu91 ] Bonjour ,voila je travaille actuellement sur un projet pour effectuer des communications utilisant le TCP/IPj'ai ainsi trouver la liste des ports util UDP [ par maladedede ] Bonjours j'ai une question sur le fonctionnement de l'UDP.En TCP on sait que si l'on doit recevoir par exemple 1024 Octects. On va faire recv() et si Après TCP : UDP [ par TheCamel ] Bonjour à tous,Après de longues années de programmation en C, et d'utilisation des sockets, je suis face à un problème : je dois développer deux progr protocole TCP en C [ par schole05 ] bonjour à tous,je suis un jeune développeur qui aimerait atteindre le niveau de la plus part d'entre vous.raison pour laquelle je me réfère à vous dan


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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 : 3,136 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é.