Ответ
В Go для проверки TCP соединения можно использовать стандартный пакет net. Основные подходы:
- net.DialTimeout() - проверка соединения с таймаутом:
conn, err := net.DialTimeout("tcp", "example.com:80", 3*time.Second)
if err != nil {
// обработка ошибки
}
defer conn.Close()
- net.Dial() - базовый вариант без таймаута:
conn, err := net.Dial("tcp", "127.0.0.1:8080")
- Пинг через TCP (не путать с ICMP ping):
_, err := net.Dial("tcp", fmt.Sprintf("%s:%d", host, port))
- Пакет net/http для HTTP-сервисов:
client := http.Client{Timeout: 5 * time.Second}
_, err := client.Get("http://example.com")
Для более сложных проверок можно использовать:
net.Connс установкой дедлайнов- Специализированные утилиты типа
nc(netcat) илиtelnet