Этот фрагмент посылает пинг, которым вы не можете манипулировать, чтобы добиться того, чего вы хотите. Просто откройте сокет и поймайте все исключения.
bool success = true;
try {
(new Socket(host, port)).close();
} catch (UnknownHostException e) {
// unknown host
success = false;
} catch (IOException e) {
// io exception, service probably not running
success = false;
}
Если вам необходимо определить, какая служба запущена, вам нужно прочитать первые отправленные байты и сравнить их с тем, что, как вы знаете, должна отправлять каждая служба. Это может потребовать несколько проходов назад и вперед.