Как пинговать IP через сокет и отправлять через него данные?

Как я могу пропинговать IP-адрес с помощью программы сокетов и отправлять через нее данные?

3 ответа

Вы не можете выполнить ping в Java - ping работает на уровне ICMP, который работает поверх IP, тогда как Java предлагает поддержку UDP (который находится поверх IP) и TCP (снова поверх IP). Это в основном другой (более высокий уровень) протокол, для которого вам понадобится ваша собственная (нативная) библиотека, написанная для получения доступа к стеку IP.

Ping - это определенный протокол ICMP. Вы не можете отправлять ICMP-пакеты на чистой Java.

Однако вы можете открыть сокет TCP для определенного порта и отправить ему некоторые данные. Есть миллионы примеров учебных пособий о том, как это сделать.

Я предлагаю вам взглянуть на эти

http://www.google.co.uk/search?q=java+socket+tutorial 6 миллионов результатов

http://www.google.co.uk/search?q=java+socket+example 11,6 миллиона результатов.

Чтобы отправить только одного персонажа, вы можете сделать

Socket s = new Socket(hostname, port);
s.getOutputStream().write((byte) '\n');
int ch = s.getInputStream().read();
s.close();
if (ch == '\n') // its all good.

Пинг использует протокол ICMP, который недоступен в Java. Это может быть лучший способ проверить связь с сервером в Java:

       try{
        String s = null;
        List<String> commands = new ArrayList<String>();
        commands.add("ping");
        commands.add("192.168.2.154");
        ProcessBuilder processbuilder = new ProcessBuilder(commands);
        Process process = processbuilder.start();
        BufferedReader stdInput = new BufferedReader(new InputStreamReader(process.getInputStream()));
         System.out.println("Here is the standard output of the command:\n");
            while ((s = stdInput.readLine()) != null)
            {
              System.out.println(s);
            }

    }catch (Exception e) {
 System.out.println("This is sad ");

}

Также другим способом может быть работа с чистыми Java-сокетами.

Другие вопросы по тегам