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  
 
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 :
 - udp::socket socket(io_service, udp::endpoint(udp::v6(), m_port));
 -     for (;;)
 -     {
 -       boost::array<char, PAYLOAD_SIZE> recv_buf;
 -       udp::endpoint remote_endpoint;
 -       boost::system::error_code error;
 -       socket.receive_from(boost::asio::buffer(recv_buf),
 -           remote_endpoint, 0, error);
 -       if (error && error != boost::asio::error::message_size)
 -         throw boost::system::system_error(error);
 -       //processBuffer( recv_buf );
 -       for( boost::array<char,PAYLOAD_SIZE>::const_iterator it=recv_buf.begin();
 -             it < recv_buf.end(); ++it)
 -       {
 -         cout<<int(*it)<<endl;
 -       }
 -       cout<<"End buffer"<<endl<<endl;
 - }
 
  | 
 
Message édité par guepe le 27-09-2009 à 15:16:53
 ---------------
			
Un blog qu'il est bien