2010-11-11 5 views
0

cpp_netlib docs contient par exemple client HTTP, mais je vois qu'il ne fonctionne que dans mode blocage:Can cpp_netlib peut-il effectuer des requêtes simultanées asynchrones?

http_client::response response = client.get(request); 

- ce (comme je suppose) arrêtera l'exécution du programme en attendant la réponse du serveur. Puis-je effectuer plusieurs demandes simultanées avec cpp_netlib sans engendrer plusieurs threads? Je veux dire une manière non-bloquante, quelque chose comme l'appel cyclique de io_service.poll() et l'utilisation de gestionnaires de callback pour intercepter les réponses - et aussi un traitement supplémentaire en attendant les réponses.

Répondre

0

Il est possible de gérer les connexions asynchrones de manière non bloquante à l'aide d'un typedef avec une étiquette asynchrone:

typedef boost::network::http::basic_client< 
    boost::network::http::tags::http_async_8bit_udp_resolve 
    , 1, 0> http_client; 

Mais actuellement il n'y a aucune possibilité d'implémenter la gestion des connexions simultanées complet, avec callbacks et contrôle cyclique pour l'achèvement des demandes. Pas avec la version actuelle 0.7 de la bibliothèque, et pas avec 0.8 suivant. Peut-être que ces fonctionnalités seront implémentées dans cpp_netlib 0.9.

Pour plus de détails, consultez la liste de diffusion cpp_netlib archieve: http://sourceforge.net/mailarchive/message.php?msg_name=AANLkTingb%2BB06YVyK%3D-XYAcZsQ2sZc%3DE%3DTPhAgcfjrTb%40mail.gmail.com

Questions connexes