Mk_socket : une bibliothèque complète et très simple de gestion de socket tcp

Description

Cette source présente une bibliothèque qui implémente une classe de gestion des sockets TCP.
Je sais bien qu'il y en a d'autre sur le site, mais je n'en ais pas vu qui soit à la fois très simple et qui permette d'écrire des clients et des serveurs. En bonus, ma bibliothèque se compile sous windows et linux.

Par contre elle est écrite en C++. C'est un choix que j'ai fait pour simplifier au maximum l'utilisation sans avoir besoin de sacrifier ses capacités parmi lesquelles la gestion des clients et des serveurs (avec un nombre non limité de clients en gestion asynchrone à l'aide de thread (ce qui n'est pas le plus performant)).
Il manque tout de même la gestion de l'UDP, car seul le protocole TCP est supporté pour l'instant.

Source / Exemple :


/*
Ci dessous je vous mets juste l'interface publique de la classe mk_socket pour que vous puissiez vous faire une idée.
Elle est abondamment commentée dans le code source dans l'archive.

  • /
class mk_socket { public: mk_socket(); ~mk_socket(); bool Connect(const char *hostname,unsigned short port); bool Listen(unsigned short port); bool Close(); bool Send(const char* str); bool Send(const char* data,int size); bool Accept(mk_socket& new_sock); bool WaitClose(); ETAT GetState(); void Kill(); void SetOnConnectCallBack(void (*onconnect)(mk_socket&,void*)=NULL,void* data=NULL); void SetOnCloseCallBack(void (*onclose)(mk_socket&,void*)=NULL,void* data=NULL); void SetConnectionRequestCallBack(void (*onrequest)(mk_socket&,void*)=NULL,void* data=NULL); void SetDataArrivalCallBack(void (*dataarrival)(mk_socket&,char*,int,void*)=NULL,void* data=NULL); };

Conclusion :


Je n'ai pas pu beaucoup tester le fonctionnement de la bibliothèque sous linux. Normalement ça compile sans problème, et vu que ça marche sous windows il ne devrait pas y avoir de problèmes.
Il manque quelques toutes petites choses dans la gestion des erreurs, mais rien qui gène le fonctionnement normal de la bibliothèque.

Vous pouvez télécharger mes autres bibliothèques ou des mises à jour sur ce site :
http://lib.sectionpc.info/

UPDATE : j'ai débogué la bibliothèque aussi sous linux (il y avait un problème avec la création de thread, mais maintenant, c'est corrigé), d'autre part le code est plus conforme aux normes récentes du C++.

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.