РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1077 of 1593 menu

Функция net.DialTimeout

Функция net.DialTimeout устанавливает сетевое соединение с указанным таймаутом. В отличие от net.Dial, она позволяет ограничить время ожидания подключения. В первый параметр передается тип сети ("tcp", "udp", "unix" и т.д.), во второй параметр передается адрес для подключения (например "localhost:8080"), а в третий параметр передается продолжительность таймаута. Если соединение не установлено за указанное время, функция возвращает ошибку.

Синтаксис

net.DialTimeout(network, address, timeout)

Пример

Давайте попробуем подключиться к локальному серверу с таймаутом в 2 секунды:

package main import ( "fmt" "net" "time" ) func main() { conn, err := net.DialTimeout("tcp", "localhost:8080", 2*time.Second) if err != nil { fmt.Println(err) return } defer conn.Close() fmt.Println("connected successfully") }

Результат выполнения кода при успешном подключении:

"connected successfully"

Пример

Попробуем подключиться к недоступному хосту с таймаутом в 1 секунду:

package main import ( "fmt" "net" "time" ) func main() { conn, err := net.DialTimeout("tcp", "192.0.2.1:80", 1*time.Second) if err != nil { fmt.Println(err) return } defer conn.Close() fmt.Println("connected successfully") }

Результат выполнения кода:

"dial tcp 192.0.2.1:80: i/o timeout"

Пример

Используем таймаут с UDP подключением:

package main import ( "fmt" "net" "time" ) func main() { conn, err := net.DialTimeout("udp", "8.8.8.8:53", 3*time.Second) if err != nil { fmt.Println(err) return } defer conn.Close() fmt.Println("udp connection established") }

Результат выполнения кода:

"udp connection established"

Смотрите также

  • функцию net.Dial,
    которая устанавливает соединение без ограничения по времени
  • функцию net.Listen,
    которая создает сетевой слушатель для входящих подключений
  • тип net.Dialer,
    который предоставляет более гибкую настройку подключений
  • тип net.Conn,
    представляющий сетевое соединение для чтения и записи данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить