2010-11-17 15 views
4

J'ai besoin de certaines informations comme le nombre de paquets renvoyés/perte de paquets survenus pour un TCP-Socket spécifique que j'ai créé. Est-ce que quelqu'un sait comment accéder à ces informations directement depuis mon programme C/C++? Peut-être quelque chose de spécifique à Linux? Ou ai-je besoin (pour contourner le problème) de capturer et d'analyser mon propre trafic?L'accès aux statistiques/informations TCP par socket est-il possible? (C/C++)

Merci d'avance!

Répondre

8

En utilisant getsockopt() pour obtenir ou setsockopt() pour définir les options de socket TCP, vous pouvez utiliser l'option TCP_INFO sur les machines Linux afin d'obtenir des informations sur un socket. Cette option devrait être évitée si vous voulez que le code soit portable.

Ce que vous récupérerez est un struct tcp_info du noyau qui contient des informations telles que les retransmissions, les paquets perdus, etc. Les Etats

+0

Malheureusement, ce n'est pas facile à trouver et tcp_info semble pas très bien documenté. Cependant, après quelques essais et erreurs, il semble livrer ce dont j'ai besoin. Merci! – NoName