ventajas source son software significado que programas open los libre ejemplos diferencian desventajas código comerciales codigo caracteristicas abierto c++ c sockets

c++ - source - software de código abierto



Qué es una biblioteca de sockets popular, multiplataforma, gratuita y de código abierto (10)

¡ACE puede ayudarte!

Este tutorial proporciona una descripción general de la capa de adaptación del SO ACE y el diseño y uso de sus envolturas de Socket C ++

Desarrollar un software de comunicación eficiente y portátil con ACE y C ++

¿Hay alguna biblioteca de código abierto gratuita (en C / C ++) para sockets que se usa ampliamente y es compatible con una amplia gama de sistemas operativos (Windows, Unix / Linux, FreeBSD, etc.). Al igual que pthreads.

De lo contrario, la única solución que queda sería escribir socket wrapper para cada sistema operativo. ¿O sería suficiente escribir un wrapper contra winsock y las bibliotecas GNU C sys / socket.h?

¿No sería posible que lo implemente contra la biblioteca de socket proporcionada con GNU C. GNU C está disponible para una amplia gama de plataformas y mi código funcionará en todas esas plataformas?




Otra opción que puedes probar es Poco . Poco tiene mucho más que zócalos, así que si necesitas otras cosas también puede proporcionar.

Comparándolo con otros kits de herramientas:

  1. Qt tiene GUI y algunas características muy sofisticadas que no encontrarás en Poco, pero es mucho más grande.
  2. Boost no tiene tanto como Poco en el camino de la funcionalidad real, pero tiene bibliotecas como contenedores de referencia, MPL y preprocesador que no se pueden encontrar en ningún otro lado.
  3. No recuerdo muy bien ACE, pero recuerdo que era muy grande en términos de código fuente y componentes. ACE parece usarse para aplicaciones de red de muy alto rendimiento, por lo que puede ser excesivo. Pero, de nuevo, no estoy muy seguro.

Solo mis dos centavos


Sí, llegarás muy lejos con una envoltura alrededor de Winsock y las tomas estándar de Berkeley. De hecho, las diferencias son tan pequeñas que es casi posible hacerlo con #ifdef directamente en el código.

Es decir, si está dispuesto a trabajar en el nivel de socket. Si buscas algo más abstracto, por supuesto que envolverlo te brinda una buena oportunidad para ocultar las diferencias.

En particular, Winsock:

  • Requiere que "lo inicie" llamando a WSAStartup() antes de cualquier otra función de socket
  • No le permite usar el cierre simple antiguo () en un socket; debes usar closesocket()
  • Requiere que use WSAGetLastError() para obtener el último error, no simple errno .

Esos son los tres principales fuera de mi cabeza, podría haber más.


Si desea una envoltura de estilo iostreams muy liviana, solo en C ++, alrededor de los zócalos BSD, podría considerar skstream , es simple y funciona bien. Por supuesto, la interfaz iostreams deja mucho que desear. Sin embargo, skstream selecciona wrap y el manejo de socket de muy bajo nivel para usted muy bien.


Solo hay una respuesta correcta aquí. OpenSSL. Porque una vez que tienes un código de socket, vas a querer hacer conexiones SSL también. Si ya está trabajando en un marco de plataforma cruzada particular, los enlaces de OpenSSL ya podrían estar disponibles. No creo que haya mucha excusa ahora para que SSL / TLS no permita su aplicación desde el principio.



QT si no es demasiado grande para ti. Boost también tiene un código de red. wxWidgets tiene con wxNet una biblioteca de red también. Otra lib es Clanlib . Y, por supuesto, SDL


Creo que tanto el Apache Portable Runtime como las bibliotecas GLib de GTK + tienen socket API. Como su pregunta está etiquetada c y c++ , sospecho que realmente quiere respuestas centradas en C ++, pero ambas son buenas como bibliotecas de C puro.