Me preguntaba si habría una API para hacer redes que funcionaría en Windows, Mac y Linux. Me gustaría hacer un juego de cartas que 2 personas puedan jugar a través de una conexión TCP.API de redes multiplataforma API
Respuesta
Hay algunas opciones para esto, algunas más fáciles de usar que otros:
TAE (Apache portátil Runtime) - muy popular. Bastante fácil de usar Incluye muchas características adicionales útiles para la programación en red (hilos, mutexes, etc.)
ACE - Popular entre el espacio integrado. Personalmente, encontré una API bastante complicada y no muy fácil de usar.
Boost - Si tiene un nivel de sofisticación decente con C++ (plantillas, metaprogramación, etc.), entonces las bibliotecas de Boost son generalmente muy buenas. No estoy seguro de cuán populares son las bibliotecas de redes asíncronas de Boost en el mundo real.
QT - Popular como un conjunto de herramientas de interfaz de usuario, pero tiene un gran conjunto de enhebrado, administración de eventos, bibliotecas de redes. IMO, este es de lejos el más fácil de usar.
Es importante permanecer lejos de usar la biblioteca de conectores de Berkeley, como las puestas en práctica a través de los sistemas operativos son muy variables, y si no se pierden un poco de tiempo para afinar ellos como portar su software a través de sistemas operativos.
Mi preferencia personal: APR.
la mayor parte de los enchufes de berkeley api funciona en todas partes.
Tengo la sensación de que Apache Portable Runtime podría ayudar con lo que está buscando. Apache HTTPD utilizó esta biblioteca internamente para abstraer su código específico de la plataforma, de modo que el código del servidor se centre en la lógica y llame a los métodos en la APR y estos se traduzcan en las funciones subyacentes del sistema operativo.
Por supuesto, podría tener más herramientas en él de lo que estrictamente necesario ...
¿Has mirado la APR? Es enorme y complejo. –
Enorme: cierto, pero esa es una necesidad para proporcionar abstracción de la API del sistema operativo, al igual que Java, realmente o .Net. En complejo - no más para que las alternativas. Como se señala en otra respuesta, APR proporciona algunas aplicaciones aptas excelentes ya que httpd ha probado este espacio extensamente. –
El laboratorio nacional de referencia tiene una muy gran biblioteca de redes métodos que soporta una gran variedad de plataformas. También cuentan con un excelente soporte de los desarrolladores reales en sus listas de correo.
+1 ¡De mí, eso se ve muy bien! –
Puede utilizar ACE o Boost.Asio:
Sobre ACE:
mayor portabilidad - componentes de la ECA que sea fácil de escribir aplicaciones en red simultáneas en una plataforma de sistema operativo y rápidamente puerto ellos a muchas otras plataformas de sistema operativo. Además, debido a que ACE es de código abierto, software libre, nunca tendrá que preocuparse por quedar bloqueado en una plataforma de sistema operativo o configuración de compilador en particular.
Acerca de impulso:
Boost.Asio es una biblioteca multiplataforma C++ para la red y de bajo nivel de I/O de programación que proporciona a los desarrolladores un modelo asíncrono coherente utilizando un enfoque moderno C++.
Synapse
es una buena biblioteca de red multiplataforma. Código abierto y muy fácil de usar.
SDL Net es una capa de abstracción muy simple en la parte superior de las tomas, que es muy fácil de usar. Ver http://www.libsdl.org/projects/SDL_net.
Para esta sencilla aplicación, puede utilizar las funciones estándar "socket de Berkeley" que son principalmente portátiles. También puede usar Boost's abstractions.
Si necesitabas funciones de seguridad como SSL/TLS (que no necesitas para un juego simple, supongo), hay bibliotecas de código abierto como OpenSSL, GNU TLS, Mozilla NSS.
- 1. iOS API detectar redes inalámbricas
- 2. ¿Qué son las buenas API de juegos multiplataforma?
- 3. Google Latitude API
- 4. Flickr api vs. Picasa api
- 5. Streaming API vs Rest API?
- 6. heredada controlador API API Web
- 7. Comunicación USB API
- 8. Cocoa API - ¿Contiene una api de diferencias?
- 9. Redes Android
- 10. Cómo obtener un API API AppID
- 11. ¿Existe una API de bajo nivel python multiplataforma para capturar o generar eventos de teclado?
- 12. Simple C++ Sound API
- 13. speedtest.net api
- 14. Plugin API vs API de biblioteca de clases
- 15. Python API
- 16. API TCP/IP simple de plataforma cruzada?
- 17. Interoperación de clojure a con API iterativa no estándar API
- 18. Google Maps API [Directions API] ¿Limitación de Waypoints?
- 19. Enviando un CAll API con la API SOAP de PayPal
- 20. API de Google Maps vs API Multimapa/Bing Maps
- 21. ¿Por qué algunos proveedores de API requieren una clave API?
- 22. API alternativa para google blog API de búsqueda
- 23. API de roscado portátiles
- 24. Monitoreo de llamadas API
- 25. Fotos de Google+ api
- 26. Código de Barras API
- 27. lista de API privada
- 28. Patrón de API interesante
- 29. Android API de Go
- 30. API de viajes/hoteles?
¡También puede usar SDL_net! – luddbro