Функция net.JoinHostPort

Функция net.JoinHostPort объединяет хост и порт в одну строку адреса, которая может быть использована для сетевых соединений. В первый параметр мы передаем хост (имя хоста или IP-адрес), во второй параметр мы передаем порт (номер порта или имя сервиса). Функция автоматически обрабатывает форматирование в зависимости от того, является ли хост IPv4 или IPv6 адресом.

Синтаксис

gonet.JoinHostPort(host, port)

Пример

Давайте объединим хост и порт для IPv4 адреса:

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  host := "192.168.1.1"
  port := "8080"

  addr := net.JoinHostPort(host, port)
  fmt.Println(addr)
}

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

go"192.168.1.1:8080"

Пример

Давайте объединим хост и порт для IPv6 адреса:

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  host := "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
  port := "443"

  addr := net.JoinHostPort(host, port)
  fmt.Println(addr)
}

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

go"[2001:0db8:85a3:0000:0000:8a2e:0370:7334]:443"

Пример

Давайте объединим хост и порт, используя имя хоста и имя сервиса:

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  host := "google.com"
  port := "https"

  addr := net.JoinHostPort(host, port)
  fmt.Println(addr)
}

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

go"google.com:https"

Пример

Давайте объединим хост и порт, используя пустой хост (локальный хост):

gopackage main

import (
  "fmt"
  "net"
)

func main() {
  host := ""
  port := "8000"

  addr := net.JoinHostPort(host, port)
  fmt.Println(addr)
}

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

go":8000"

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

  • функцию net.SplitHostPort,
    которая разделяет строку адреса на хост и порт
  • функцию net.Dial,
    которая устанавливает сетевое соединение
  • функцию net.DialTimeout,
    которая устанавливает сетевое соединение с таймаутом
  • функцию net.ParseIP,
    которая проверяет корректность IP-адреса