Ответ
В своей практике для отладки сетевых взаимодействий в C++ приложениях я использовал несколько инструментов.
Wireshark — основной инструмент для глубокого анализа пакетов. Я применяю его для диагностики протоколов, с которыми работает мое приложение (например, кастомные бинарные протоколы поверх TCP). Полезно строить фильтры для конкретного порта или IP-адреса:
ip.addr == 192.168.1.100 && tcp.port == 8080
tcpdump — консольный сниффер для Linux-серверов, где развернуто C++ backend-приложение. Использую для захвата трафика в файл с последующим анализом в Wireshark:
tcpdump -i any -s 0 -w my_app_trace.pcap 'port 9000'
netstat/ss — для быстрой проверки открытых портов и сетевых соединений самого процесса. Например, чтобы найти утечку сокетов:
netstat -tulpn | grep <pid_of_my_cpp_app>
iperf3 — для проверки пропускной способности сети между клиентом и сервером, что критично для высоконагруженных C++ систем.
Собственный инструментарий — иногда встраиваю логирование сырых сетевых данных (в hex-формате) непосредственно в C++ код для отладки сложных случаев.