Кажется, это должно быть простое решение, но мне не повезло. Я хочу написать простое приложение для устранения неполадок ping / traceroute / dns, но я просто не нахожу никакой документации или примеров по отправке пакетов ICMP ECHO с установленными TTL и интерпретации их ответов. Я понимаю, что Java любит держать вас подальше от «низкоуровневых» сетей, но ICMP - это базовая, основная часть сетей. Честно говоря, я шокирован очевидной трудностью. Я делаю это более сложным, чем нужно, или просто нет хорошего способа сделать это? Если второе, то каким «плохим» способом вы чаще всего обходите этот недостаток?
Как отправлять ICMP-пакеты (со связанными значениями TTL) в Java на Android? Можно ли без сторонней библиотеки? Если нет, то что вы используете?
Ответы (1)
Я делаю это более сложным, чем нужно, или просто нет хорошего способа сделать это?
Нет способа сделать это на чистом Java. Java никогда не поддерживала ICMP, кроме ограниченного использования в isReachable()
, и я даже не могу подтвердить, что такое использование ICMP существует в Android.
Однако вы можете попробовать использовать NDK для компоновки в библиотеке C, которая реализует ICMP.
person
CommonsWare
schedule
26.09.2010
, Можно ли использовать Java для отправки пакетов ICMP да или нет
- person Samir Mangroliya; 15.03.2012