Назад | Перейти на главную страницу

Как проверить, отправляют / получают ли сокеты данные в Linux?

Мне часто приходится отлаживать процессы, которые связаны с tcp-соединением клиентского сервера. Я хотел бы проверить, когда клиент может казаться застрявшим, отправляет ли сервер ему данные или нет. Я могу использовать:

'netstat -tpe | grep PID_SERVER '

найти сокет для сервера, или netstat -tlpe | grep PID_CLIENT ', чтобы найти клиента. Есть ли способ дополнительно проверить этот конкретный сокет, как только я его определю? Помимо его State? я чувствую Recv-Q or Send-Q может быть полезно, хотя я не уверен, к чему это относится, но что еще я могу использовать для диагностики того, что происходит между ними? Думал, возможно, что-то в /proc/PID/fd?

Любое понимание будет оценено ...

Для этой задачи вам следует использовать инспектор пакетов. Одним из широко используемых (и мне лично любимых) инструментов является Wireshark.