2008-12-05 3 views
3

C++ je serai rapide et honnête: J'essaie actuellement d'écrire un client/serveur pour un jeu en ligne. Comme je suis pauvre et limité sur les ressources, je vais tester les bases nues du serveur en utilisant un backend PHP, avec comme objectif final de reconstruire la fin du serveur en C++.simple Asynchronous bibliothèque de requête HTTP multi-thread pour

Je suis à la recherche d'une bibliothèque C++ pour Windows (XP et Vista de préférence) qui me laisser utiliser un nombre fini de threads, l'un dédié à chaque morceau du problème de réseau. Par exemple, je veux utiliser un fil pour rapporter les informations positionnelles du joueur au serveur (et recevoir des réponses sur les informations de position des autres joueurs) mais je veux un fil différent à télécharger en arrière-plan dans l'illustration 3D pour la zone/players, et un thread différent pour le système de chat intégré, etc. Ils doivent tous être assez indépendants les uns des autres.

Je sais ce que je veux faire avec la bibliothèque, j'ai le design conçu, je me sens juste un peu bête de réinventer la roue, puisque je sais qu'une bonne bibliothèque pour ce but précis existe probablement déjà. Alors, quelles sont vos suggestions? Je dois pouvoir envoyer des données à un serveur et accepter les réponses. Idéalement, la requête doit déclencher un événement quand c'est fait (donc je peux immédiatement saisir les données et faire quelque chose avec) et je dois être capable de gérer plusieurs transactions simultanément. HTTP est un bon bonus, mais je peux gérer le protocole HTTP moi-même si nécessaire, d'autant que je prévois de le laisser tomber à long terme.

Merci!

Répondre

1

Consultez les bibliothèques Boost, en particulier, Boost Threads.

+0

Boost semble avoir beaucoup augmenté récemment. D'accord, il est temps d'essayer une grande expérience. (C'est une bonne chose que le projet commence juste, c'est facile à faire à ce stade.) Yay! –

3

Vous pouvez essayer la bibliothèque POCO. Il a un serveur TCP multithread et un serveur HTTP.

1

Vous pouvez essayer ma classe CSocksetServer. Il peut gérer de nombreuses connexions dans des threads séparés et vous fournit de nombreux événements différents. Bien qu'il n'ait pas de capacités HTTP natives, j'ai construit des serveurs web avec lui.

-2

Vous devez simplement utiliser cUrl avec multihandles. Il est mieux conçu pour faire ce que vous voulez que ce que vous avez conçu.