Чтобы немного упростить задачу: да, установление соединения - это правильный способ проверки открытого порта, и если вы даже найдете другой метод, он будет использовать socket () под капотом.
Сложностьвся проблема связана с тем, что «открытый порт» является подозреваемым номер один в каждой книге по безопасности.Системные администраторы используют несколько приемов для борьбы с так называемым «сканированием портов».Это включает в себя сообщение о «ложном срабатывании» (утверждение о том, что порт открыт, а он нет) любому программному обеспечению, которое ведет себя как сканер портов (то есть: устанавливает соединение и отключается без отправки каких-либо данных).на самом деле лучший способ - установить соединение, отправить запрос и обработать ответ.Любой другой подход может потерпеть неудачу при определенных конфигурациях сети / хоста / безопасности, оставляя вашего пользователя озадаченным, почему его приложение не работает, когда заявляет, что нет проблем с соединением.