Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2037 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Boost::asio] Acces a des donnees bas niveau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Boost::asio] Acces a des donnees bas niveau

n°1927051
guepe
J'ai du noir sur la truffe ?
Posté le 27-09-2009 à 15:16:24  profilanswer
 

Bonjour ! J'ai ecris un mini serveur UDP (a partir de la doc asio hein ;-) ), qui recoit des informations depuis une carte wifi connectee a un routeur en ipv6. Bref, ca marche, je recois le payload de chaque paquet, ca c'est tres cool  :love:
Cependant, j'aurai besoin de recuperer pour chaque paquet l'adresse MAC de la source : or, boost n'a pas d'interface directe pour cela il semblerait, mais la solution se situe peut etre dans boostt::asio::socket avec la methode native.

 

J'ai quand meme de la difficulte a savoir ce que je recupere exactement : quel type declarer ? Une socket unix (je suis sous linux ) ? Donc je perd la portabilite ?

 

Si vous avez une solution directe vers ce dont j'ai besoin (adresse mac pour chaque paquet) je suis preneur !

 

Mon serveur (partie qui travaille )

 
Code :
  1. udp::socket socket(io_service, udp::endpoint(udp::v6(), m_port));
  2.     for (;;)
  3.     {
  4.       boost::array<char, PAYLOAD_SIZE> recv_buf;
  5.       udp::endpoint remote_endpoint;
  6.       boost::system::error_code error;
  7.       socket.receive_from(boost::asio::buffer(recv_buf),
  8.           remote_endpoint, 0, error);
  9.       if (error && error != boost::asio::error::message_size)
  10.         throw boost::system::system_error(error);
  11.       //processBuffer( recv_buf );
  12.       for( boost::array<char,PAYLOAD_SIZE>::const_iterator it=recv_buf.begin();
  13.             it < recv_buf.end(); ++it)
  14.       {
  15.         cout<<int(*it)<<endl;
  16.       }
  17.       cout<<"End buffer"<<endl<<endl;
  18. }


Message édité par guepe le 27-09-2009 à 15:16:53

---------------
Un blog qu'il est bien
mood
Publicité
Posté le 27-09-2009 à 15:16:24  profilanswer
 

n°1927194
Joel F
Real men use unique_ptr
Posté le 28-09-2009 à 09:41:39  profilanswer
 

je crois que les aprties os specific non facilement interfacable de manière portable n'ont pas de support dans asio. reste donc à faire un truc moche à base de #define autour du code incriminé que je te conseille de cacher dans une fonction à part.

n°1927284
guepe
J'ai du noir sur la truffe ?
Posté le 28-09-2009 à 13:42:21  profilanswer
 

Tu veut dire que je devrais faire le support multiplateforme de cette section (recuperer l'adresse MAC) moi meme avec des #ifdef pour chaque plateforme ?
 
Merci... cependant, je ne vois pas du tout par ou aller, a part que je _pense_ que les informations sont certainement dans la socket ? Aurait-tu un cours example de recuperation de la socket native depuis une socket asio ?
 
Je te remercie :-)


---------------
Un blog qu'il est bien

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Boost::asio] Acces a des donnees bas niveau

 

Sujets relatifs
[PostgreSQL 8.4] restaurer base de données dumpProblème accès fichier ....
Open Office: Base de donnéesQuoi qui enregistre les données?
Analyse lexicale & syntaxique avec Boost::SpiritProbleme insertion données Fichier Excel
Problème import données dans table liée SQL sous AccessAccès à un array dans un objet / notation
Recherche d'une solution pour gérer des données simpleserreur 3464 : type de donnees incompatible
Plus de sujets relatifs à : [Boost::asio] Acces a des donnees bas niveau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR