Connaissez-vous une bibliothèque de socket multiplateformes (Windows et Linux) en C?

Je cherche à faire des communications de socket (écouter, accepter, se connecter, recv, envoyer, déconnecter) à la fois sous Linux et Windows. Mon projet est en C, donc à moins que quelqu’un ne puisse trouver un moyen d’intégrer les bibliothèques C ++ dans un projet C, la bibliothèque devra également être en C.

En fin de compte, j’aimerais que la bibliothèque prenne en charge le mode ipv6 et le mode non bloquant, mais ces éléments ne sont pas essentiels.

Est-ce que quelqu’un connaît un exemple de code de bibliothèque / multiplateforme? Même de grands extraits de code aideraient. Jusqu’à présent, les quelques bibliothèques de sockets que j’ai trouvées sont en C ++.

D’emblée, je peux penser à quatre bibliothèques:

  • Les canaux GLib du framework GLib peuvent résumer l’utilisation de socket, mais vous aurez besoin d’un code spécifique à la plate-forme pour la création de socket.

  • libuv est une couche d’abstraction de plate-forme pour node.js et gère, entre autres choses, les sockets et les entrées / sorties asynchrones.

  • Apache Portable Runtime contient également des routines réseau .

  • Netscape Portable Runtime effectue également la manipulation de socket .

Je ne connais pas de bibliothèque compatible Windows et Linux, mais je pense que winsock est assez similaire à la programmation par socket Linux.

En particulier, il vous fournit ‘select ()’ et les autres fonctions mentionnées. J’imagine que vous aurez besoin d’un très # # wrapper wrapper pour éviter les avertissements de transtypage.

Voir ici la page winsock pour select

La bibliothèque plibsys fournit toutes les fonctionnalités demandées: multiplate-forme et portable, légère, fournit la prise en charge des socket IPv4 et IPv6 ainsi que de nombreuses autres choses utiles comme le multithreading. Fonctionne avec des sockets en mode non-bloquant (bien que vous puissiez aussi basculer vers un blocage). A une assez bonne documentation avec les exemples de code de test.

vérifier la bibliothèque source HS Sockets C pour Windows et Linux

Ptlib fournit du code C ++ multiplateforme qui fonctionne bien pour les sockets. http://www.opalvoip.org

Se débrouille bien avec les fils. Certains support pour mac et BSD. En développement actif et maintenance. Bibliothèque MPL Core dans Ekiga – L’application de bureau préférée pour SIP et H.323

Pour Windows – il comstack avec MSVC. pour linux, il comstack avec gcc autoconf make etc.

Bien, il s’agit de C ++, mais vous pouvez travailler avec cela … Ayez la source dans ptlib / samples – il existe de nombreux exemples d’utilisation de ptlib.

La bibliothèque Boost comprend ces fonctionnalités.