2009-02-27 24 views
7

Estoy escribiendo una aplicación multiplataforma con hilos (Linux/Windows) usando SDL y OpenGL, y para hacer redes estaba considerando SDL Net2 porque se encuentra encima de SDL_Net.Marco de trabajo en red para C++ (UDP o TCP)?

Sin embargo, nunca antes había hecho redes en C/C++, así que no estoy familiarizado con ninguna de las tecnologías multiplataforma disponibles. ¿Hay alguien con experiencia en SDL_Net o Net2 que sugiera una biblioteca diferente?

+0

¿Podría proporcionarnos un poco más de información sobre qué tipo de aplicación está escribiendo? ¿Puedes describir lo que usarás para transferir la capa de red? ¿No fidedigno? Consideraciones de ancho de banda, tolerancia a la latencia, etc. –

Respuesta

6

boost :: asio es tu amigo. Es una biblioteca asincrónica multiplataforma. Bueno para la red. Con muchas muestras en el sitio de impulso. http://www.boost.org/

1

Existen muchos frameworks (por ejemplo, Poco, ACE). Depende de lo que estés buscando. Si desea crear sockets sin procesar en la capa del sistema operativo y enviar secuencias de bytes a través de ellos, me gustaría ir con Boost.Asio como lo sugirieron todos los demás. Si está buscando enviar documentos XML a través de HTTP o algo así, investigue algunas de las otras alternativas.

1

Como ya se ha dicho, boost :: asio es sin duda la mejor opción.

Ahora bien, eso es para hacer una red "en bruto".

si usted está haciendo un juego de vídeo, o la red rendimiento similar a-video-juego de software de, tal vez un alto nivel cada vez optimizado para este caso biblioteca como la fuertemente recommanded RakNet biblioteca sería una mejor elección. Otra alternativa en este mismo caso, si desea biblioteca basada en UDP de nivel inferior, ENet puede satisfacer sus necesidades.

Cuestiones relacionadas