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

Signaler
Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014
-
Messages postés
249
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
9 août 2008
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/42535-mini-chat-client-serveur-udp-avec-transfert-de-fcihier-tcp

Messages postés
249
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
9 août 2008

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.
Messages postés
4
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
28 mai 2008

je voudrais avoir des critiques ainsi que des pistes d'ameliorations!!
avis au programmeur
Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014

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.
Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014

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).
Afficher les 8 commentaires