2013-09-08 3 views
0

Я хотел бы получить полное сетевое использование хоста, то есть текущую скорость загрузки и загрузки. Как я могу это сделать на Java? Если это упростит, предположим, что платформа - это Linux.Как измерить использование сетевой сети в Java?

+0

Если вы знаете, как использовать другой инструмент сети как netstat, то вы можете использовать Runtime.getRuntime(). exec («ваш сетевой инструмент») и соответствующим образом управлять результатом. – mawia

+0

Можете привести пример? Предположим, я не знаю, как использовать сетевой инструмент ... –

+0

@EduardoBezerra * Предположим, я не знаю, как использовать сетевой инструмент ... * Единственное предположение, которое мы можем сделать, это то, что вы сделали некоторые предварительные исследования до приезда сюда. –

ответ

0

Nethogs: http://nethogs.sourceforge.net/, вероятно, инструмент, который вы ищете.

Большинство людей предпочитает это, так как оно разбивает полосу пропускания по процессу.

2

Как я могу это сделать на Java?

Выполнение этого на Java - это плохая идея ... если не требуется строгое требование для получения информации в более крупном приложении Java.

  • Вы не можете сделать это в чистой Java. Для доступа к такой информации нет стандартных Java-API.

  • I Googled для чего-то конкретного и свободного от Java, соответствующего вашим требованиям, но ничего не заметил. (YMMV ... пожалуйста, повторите поиск самостоятельно!).

  • Есть специальные инструменты для просмотра статистики сети и т. Д., И можно попытаться запустить эти инструменты в качестве внешних процессов с Java и «очистить» выход. Но это обязательно будет связано с OS/tool.

  • Вы могли бы попытаться повторить то, что эти инструменты делают в Java, но это может включать нативные вызовы библиотек, и будет , конечно быть OS специфичны. (В Linux, вы можете быть в состоянии получить необходимую информацию путем чтения из /proc файловой системы ... но может быть также вопросы контроля доступа.)