2009-02-27 13 views
7

Ich schreibe eine Cross-Plattform-Thread-Anwendung (Linux/Windows) mit SDL und OpenGL, und Netzwerk zu tun, dachte ich SDL Net2, weil es auf SDL_Net sitzt.Netzwerk-Framework für C++ (UDP oder TCP)?

Allerdings habe ich noch nie in C/C++ gearbeitet, daher bin ich mit den verfügbaren plattformübergreifenden Technologien nicht vertraut. Gibt es jemanden mit Erfahrung mit SDL_Net oder Net2, der eine andere Bibliothek vorschlagen würde?

+0

Könnten Sie ein bisschen mehr Informationen darüber geben, welche Art von Anwendung Sie schreiben? Können Sie beschreiben, wie Sie die Netzwerkschicht zum Übertragen verwenden? Unzuverlässig? Bandbreitenüberlegungen, Latenztoleranz usw.? –

Antwort

6

boost :: asio ist dein Freund. Es ist plattformübergreifende asynchrone Bibliothek. Gut für das Netzwerk. Mit vielen Samples auf der Boost-Seite. http://www.boost.org/

1

Versuchen Sie vielleicht.

1

Es gibt eine Reihe von Frameworks da draußen (z. B. , ACE). Es hängt davon ab, was Sie suchen. Wenn Sie Raw-Sockets auf der Betriebssystemebene erstellen und Byte-Streams über sie senden möchten, würde ich mit Boost.Asio gehen, wie von allen anderen vorgeschlagen. Wenn Sie XML-Dokumente über HTTP oder ähnliches senden möchten, untersuchen Sie einige der anderen Alternativen.

1

Wie schon gesagt, boost :: asio ist sicherlich die gute Wahl.

Nun gesagt, das ist wirklich, um "roh" Vernetzung zu machen.

Wenn Sie ein Videospiel machen, oder Netzwerk-Performance-like-Video-Spiel-Software, vielleicht ein High-Level und wie die stark unverbindlichen für diesen Fall Bibliothek optimierte ein RakNet Bibliothek wäre bessere Wahl. Eine weitere Alternative in diesem Fall, wenn Sie UDP-basierte Bibliothek auf niedrigerer Ebene möchten, ENet könnte Ihren Anforderungen entsprechen.