![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
ovod |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 5.6.2004 Репутация: нет Всего: 1 |
Есть ли пример простейшего ping.java с использованием токма javax.microedition.io.* ?
|
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Насколько я помню ICMP в JAVA не поддерживается - а потому возможности сделать полноценный PING не получается. Был когда-то примерчик несколько исскуственного пинга - использовать еще какой-то порт.
|
|||
|
||||
ovod |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 5.6.2004 Репутация: нет Всего: 1 |
...Хмм..
я задал этот вопрос, потому что в программке для мобилы! NetTools v.0.2 (брать здесь http://download.siemens-club.ru:8000/files/java/nt.rar) намечен и ping, и whoIs и tracert, но самое главное - там действующий SSH-клиент! Ковырять исходники можно чудным декомпилятором djdec377 (брать здесь http://www.simtel.net/product.download.php...eID=simtel.net) В J2SE конешно есть пакет java.net (которого нету в j2ME ![]() С большой радостью также приму ссылку на реализцию пинга через порт. |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Так это работает уже на уровне TCP. А ping существует на том же уровне, но ICMP. И его на JAVA не сделать. То, что гугль выдает кучу ping.java - так это скорее всего надстройка над JNI. А реальный код на Си написан. А вот примерчик "якобы" ping http://www.3dcom.com/ping/Pinger.html |
|||
|
||||
Sun |
|
|||
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: 8 Всего: 48 |
Пинг наверно можно без труда написать на чистой Java. По идее надо открыть UDP сокет и отсылать на него ICMP-пакеты, которые можно тоже формировать через Java. Пинг построен по принципу эхо-сервера, ты посылаешь датаграмму а сервер возвращает ее тебе. Описание ICMP можно посмотреть тут:
http://www.school.ioffe.ru/lessons/courses/tcpip/icmp.html -------------------- Account removed |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Так UDP-заголовок сформировать у тебя не получится - не тот уровень. Или есть идеи ? Я просто как-то раз занимался этим вопросом. И мне пришлось делать свой ping через JNI. Но если что-то может получится - было бы интересно. |
|||
|
||||
Nobody |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 25.8.2003 Где: Россия, Москва Репутация: 4 Всего: 16 |
Анриал. На Яве такой низкоуровневый код писать нельзя.
-------------------- |
|||
|
||||
ovod |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 5.6.2004 Репутация: нет Всего: 1 |
Ситуация такая:
1) Если "выплевывать" сформированный "вручную" ICMP-пакет c type 8 через UDP-сокет (хотя тут вопрос: при организации сокета можно ли не указывать порт доставки? ), то нужно как-то все равно ловить ICMP ехо-пакет c type 0. Куда ж все-тки пингуемый отвечает, ведь не на порт? Как мы поймаем? 2) либо же UDP-пакет на неиспользуемый порт, и тогда пингуемый опять же ответит ICMP-пакетом с type 3. Вопрос опять не снимается. 3) либо же на пингуемом хосте должен быть запущен ехо-порт, например 7, который нам ответит UDP-пакетом, но не всяком компе этот ехо-порт запущен. 4) либо же делать косвенный пинг, посылая команду "сделать пинг" некоторому промежут. серверу и получая отчет по TCP. Правильно ли я рассуждаю? Поправьте. RFCы читал, но по англицки тяжело, 5% понимания. |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Мда-а-а. Есть идея - хостинг пингов
![]() Т.е. сервер занимается тем, что по TCP принимает запросы на пингование и отсылает результаты пинга. Вообщем пункт 4 занятен. |
|||
|
||||
Nobody |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 25.8.2003 Где: Россия, Москва Репутация: 4 Всего: 16 |
AntonSaburov
Хех)) да, конечно, это было бы неплохо, только надо что-то делать, чтобы не заDOSили... Добавлено @ 18:01 В принципе, идея действительно хорошая, можно бы и сделать ![]() -------------------- |
|||
|
||||
Sun |
|
|||
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: 8 Всего: 48 |
Да уж, на чистой Java ping не сделать так как она не поддерживает сырые (RAW) сокеты. Я тут дискусси на форуме почитал, насколько я понял решение так и не найдено
http://forum.java.sun.com/thread.jsp?threa...message=2519662 -------------------- Account removed |
|||
|
||||
ovod |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 5.6.2004 Репутация: нет Всего: 1 |
Можно ли импортировать функции из WS2_32.dll в Java-приложение? Ваще импорт возможен из внешних библиотек? Например?
|
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
-------------------- |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 51 Всего: 118 |
Еще в JAVA 1.5 есть InetAddress.isReachable()
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |