Bonjour journal,
dans le cadre d'un projet scolaire, je recherche une classe qui s'occupe de gerer les sockets.
Cette classe devrai respecter une condition tres importante : etre compatible Windows ET Linux.
J'en ai deja trouver mais jamais a mon gout, il faudrait quelle soit non bloquante et assez simple dans la mesure du possible.
Cette classe me permettrai de faire facilement un serveur et un client et de gerer leur communication.
Oui, je sais j'en demande beaucoup, mais bon...
Merci
PS : pour mon projet, j'ai le droit de recuperer des classe deja faites, je ne triche pas :-)
# Re: classe pour gerer les socket en C/C++
Posté par Gonéri Le Bouder (Mastodon) . Évalué à 2.
[^] # Re: classe pour gerer les socket en C/C++
Posté par Tof . Évalué à 1.
# Re: classe pour gerer les socket en C/C++
Posté par Pascal . Évalué à 1.
P.S: On ne parle pas de classe en C
[^] # Re: classe pour gerer les socket en C/C++
Posté par spongurex . Évalué à 1.
la je pense que c'est correct ?
Sinon, pour la develloper moi même, c'est pas gagné, j'ai des compétence en prog assez limités.
Au mieux, je pourrais coller plusieurs bout de code qui m'interessent et qui proviendrai de differentes classes.
Pour ne rien arranger, le temps m'est compté et j'ai pas mal de boulot autre que ce projet
c'est dur la vie d'etudiant... :-)
[^] # Re: classe pour gerer les socket en C/C++
Posté par Superted . Évalué à 2.
pas vraiment : une classe ça s'utilise en C++, pas en C.
# Re: classe pour gerer les socket en C/C++
Posté par xilun . Évalué à 3.
[^] # Re: classe pour gerer les socket en C/C++
Posté par Moby-Dik . Évalué à 1.
[^] # Re: classe pour gerer les socket en C/C++
Posté par hope . Évalué à 2.
Concernant ACE c'est un peu limitant de l'assimiler à une librairie de Socket. C'est plutot un framework objet qui permet grâce à l'utilisation d'abstractions et de design patterns de réaliser des développement d'une très grande élégance. Il permet de gérer au travers d'une interface commune à plusieurs OS les problématiques de communication réseaux, de multithreading, de communication IPC et plein d'autres choses que je n'ai pas encore utilisé.
Pour résumer ACE c'est un framework qui répond à la probèmatique de ce journal mais qui demande un gros effort d'apprentissage pour parvenir à le maitriser. Depuis que je l'utilise je me demande bien comment j'ai pu programmer sans par le passé.
# Re: classe pour gerer les socket en C/C++
Posté par Mathieu Malaterre (site web personnel) . Évalué à 2.
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/boost-sandbox/boost-(...)
Site principal
http://boost.org/(...)
ML:
http://lists.boost.org/(...)
# Re: classe pour gerer les socket en C/C++
Posté par zelyph . Évalué à 1.
Comme c'est assez simple (niveau d'abstraction assez bas) cela peut s'adapter rapidement au C ou à winsock je pense. (c'est une occasion d'apprendre).
Il s'agit du module zcnet (.h/.cc) qu'on peut trouver dans les archives à l'url suivante:
http://dev.oridani.com/viewdoc.php?threp=dev/zc&view=download(...)
# Re: classe pour gerer les socket en C/C++
Posté par Antoine Schweitzer-Chaput . Évalué à 1.
doc en ligne (doxygen + quelques exemples) : http://www.gnu.org/software/commoncpp/docs/refman/html/index.html(...)
C'est disponible dans toutes les bonnes distrib, c'est portable Linux/Windows
Elle permet de gérer très facilement les socket (TCP ou UDP), les threads, et encore plein d'autres choses dont je me suis pas encore servi.
Je m'en suis servi pour faire un soft de transfert de fichier client/serveur en utilisant UDP, et franchement ca marche tout seul!
# Re: classe pour gerer les socket en C/C++
Posté par Denis Montjoie (site web personnel) . Évalué à 2.
La seule difference est lobligation de faire un WSAStartup() au depart sous win et fermer une socket sous win cest closesocket au lieu de close.
Vive les #ifdef.
Sinon avec send() recv() socket() bind() et la macro FD_ZERO FD_ISSET (permet de faire du non bloquant avec du bloquant) tu est portable.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.