|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Étudiant Inscription : décembre 2011 Messages : 35 ![]() |
Bonjour,
Je lis le tutoriel suivant sur Boost Asio : http://gwenael-dunand.developpez.com...pp/boost/asio/ et j'essaye de comprendre le fonctionnement du serveur dans la partie 7. J'ai en fait deux questions. La première concerne l'utilisation des tuples. Dans les méthodes handle_read_header et handle_read_data de la classe tcp_connection on utilise l'instruction suivante : J'ai compris l'intérêt d'utiliser les tuples, je sais que boost::get<0>(handler) nous permet d'accéder à l'élément 0 du tuple handler, mais pourquoi rajouter ce (e) à la suite ? Je ne trouve rien dans la doc de Boost Tuple. La deuxième question est plus générale. Je vois qu'il y a beaucoup de classes à créer pour la création du serveur et je voudrais savoir si cette manière d'organiser nos classes varie beaucoup selon les projets ? Si je crée une application réseau est ce que je pourrais me baser sur cette "organisation des classes" même s'il ne s'agit pas d'un chat ? Est ce que je pourrais chercher à obtenir une organisation similaire (plus ou moins bien sûr) ? J'attends vos réponses et conseils avec impatience Bonne journée ! |
|
|
00
|
|
|
#2 | ||||||
|
Membre Expert
![]() ![]() Inscription : mai 2008 Messages : 937 ![]() |
Bonjour,
Citation:
Donc ce que fait ce bout de code c'est extraire la callback du tuple et l’appeler aussitôt en passant e comme argument. (Par callback j'entends un objet appelable avec l’opérateur() comme un pointeur de fonction ou une fonction-objet) On aurait pu faire en deux temps : Code :
Quel est l'intérêt de passer en argument des tuple d'un seul élément ? Pourquoi ne pas passer directement l'élément en question ? Il me semble qu'on pourrait utiliser directement un code comme celui-ci : Code :
Citation:
|
||||||
|
|
00
|
|
|
#3 | |||||||
|
Membre à l'essai
![]() Étudiant Inscription : décembre 2011 Messages : 35 ![]() |
Citation:
Citation:
Or le handler est passé en paramètre à la fonction template handle_read_header. Et dans cette fonction template handle_read_header on utilise la fonction boost::bind(), qui ne peut donc pas utiliser la fonction handler qui a été passée en paramètre à handle_read_header. Dans le tuto il est dit : Citation:
En tout cas merci pour cette réponse, et j'en attends d'autres, concernant ma deuxième question. |
|||||||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com