2009-02-27 13 views
7

Sto scrivendo un'applicazione threading multipiattaforma (Linux/Windows) utilizzando SDL e OpenGL e per fare networking stavo considerando SDL Net2 perché si trova su SDL_Net.Framework di rete per C++ (UDP o TCP)?

Tuttavia, non ho mai eseguito il networking in C/C++, quindi non conosco le tecnologie cross-platform disponibili. C'è qualcuno con esperienza con SDL_Net o Net2 che suggerirebbe una libreria diversa?

+0

Potrebbe fornire ulteriori informazioni su quale tipo di applicazione stai scrivendo? Puoi descrivere cosa utilizzerai per trasferire il livello di rete? Un/affidabile? Considerazioni sull'ampiezza di banda, tolleranza alla latenza, ecc.? –

risposta

6

boost :: asio è tuo amico. È una libreria async cross platform. Buono per la rete. Con un sacco di campioni sul sito di boost. http://www.boost.org/

1

Ci sono un sacco di strutture là fuori (ad es., Poco, ACE). Dipende da cosa stai cercando. Se si desidera creare socket non elaborati sul livello del sistema operativo e inviare flussi di byte tra di loro, quindi andrei con Boost.Asio come suggerito da tutti gli altri. Se stai cercando di inviare documenti XML su HTTP o qualcosa del genere, quindi indagare alcune delle altre alternative.

1

Come già detto, boost :: asio è sicuramente la scelta giusta.

Detto questo, è davvero per creare reti "grezze".

se stai facendo un videogioco, o la rete-prestazioni-come-video-game software, forse un più alto livello e ottimizzata per questa libreria caso come quello pesantemente le nostre raccomandazioni RakNet libreria sarebbe un scelta migliore Un'altra alternativa in questo caso, se si desidera una libreria basata su UDP di livello inferiore, ENet potrebbe soddisfare le proprie esigenze.