Bonjour à tous,

je développe une application orientée P2P, et j'essaye de créer des noeuds à l'aide de boost ASIO. Je travaille sur une machine virtuelle VMWare (CentOS 5) sur laquelle j'ai déclaré 3 interfaces réseau comme suit:
eth0: 192.168.0.10
eth1: 192.168.0.11
eth2: 192.168.0.12

Je lance ensuite 3 fois mon application, chacune écoutant sur une interface différente (donné par argument)

Jusque là, tout fonctionne bien, quand je fais un netstat après le lancement de mes 3 applis, j'ai bien mes 3 interfaces en LISTEN sur le port souhaité:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
tcp        0      0 192.168.0.12:7171           *:*                         LISTEN      
tcp        0      0 192.168.0.11:7171           *:*                         LISTEN 
tcp        0      0 192.168.0.10:7171           *:*                         LISTEN
Je lance ensuite une recherche à partir de la première instance du programme (celui qui écoute en .0.10), pour qu'il essaye de se connecter au 2 autres via leur port d'écoute. La connexion (asynchrone) réussit, mais quand je regarde le socket de la connexion, j'obtiens ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
tcp        0      0 192.168.0.11:39890          192.168.0.11:7171           ESTABLISHED 
tcp        0      0 192.168.0.11:7171           192.168.0.11:39890          ESTABLISHED 
tcp        0      0 192.168.0.12:7171           192.168.0.12:47724          ESTABLISHED 
tcp        0      0 192.168.0.12:47724          192.168.0.12:7171           ESTABLISHED
Je n'ai donc pas de lien 10/11 et 10/12, mais à la place 11/11 et 12/12...
Voici le code que j'utilise pour la connection:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
void nvsnode::connect(tcp::endpoint& endpoint)
{
    connec* new_node= new connec(m_io_serv);
    new_node->getSocket().async_connect(endpoint,
                                        boost::bind(&nvsnode::handle_connect, this,
                                                new_node,
                                                boost::asio::placeholders::error)
                                       );
}
D'ou peut provenir le problème,
de la configuration de mes interfaces via VMWare?
de mon code?
d'une option pour spécifier l'interface de connection dans asio?
un paramètrage spécial de CentOS?

Merci de votre attention.