Тип net.TCPAddr
Тип net.TCPAddr представляет собой TCP-адрес в пакете net.
Он содержит два основных поля: IP и Port.
Поле IP имеет тип net.IP и хранит IP-адрес в виде байтового среза,
а поле Port имеет тип int и хранит номер порта.
Тип реализует интерфейс net.Addr, предоставляя методы Network и String.
Структура TCPAddr
type TCPAddr struct {
IP IP
Port int
}
Создание TCPAddr с помощью ResolveTCPAddr
Для создания net.TCPAddr из строкового представления адреса используется функция net.ResolveTCPAddr.
Она принимает два аргумента: сеть (например, "tcp") и строку с адресом.
Строка может содержать IP-адрес и порт в форматах "ip:port" или "[ipv6]:port".
Если адрес не содержит порта, он будет равен 0.
package main
import (
"fmt"
"net"
)
func main() {
addr, err := net.ResolveTCPAddr("tcp", "127.0.0.1:8080")
if err != nil {
fmt.Println(err)
return
}
fmt.Printf("IP: %s, Port: %d\n", addr.IP, addr.Port)
}
Результат выполнения кода:
"IP: 127.0.0.1, Port: 8080"
Создание TCPAddr вручную
Вы можете создать экземпляр net.TCPAddr вручную, используя литерал структуры.
Поле IP принимает значение типа net.IP, которое можно получить с помощью net.ParseIP.
package main
import (
"fmt"
"net"
)
func main() {
addr := &net.TCPAddr{
IP: net.ParseIP("192.168.1.1"),
Port: 443,
}
fmt.Printf("IP: %s, Port: %d\n", addr.IP, addr.Port)
}
Результат выполнения кода:
"IP: 192.168.1.1, Port: 443"
Метод Network
Метод Network возвращает имя сети, которое всегда равно "tcp", "tcp4" или "tcp6".
Этот метод необходим для реализации интерфейса net.Addr.
package main
import (
"fmt"
"net"
)
func main() {
addr := &net.TCPAddr{
IP: net.ParseIP("192.168.1.1"),
Port: 443,
}
fmt.Println(addr.Network())
}
Результат выполнения кода:
"tcp"
Метод String
Метод String возвращает строковое представление адреса в формате "ip:port".
Для IPv6 адресов вывод будет в формате "[ipv6]:port".
Этот метод также является частью интерфейса net.Addr.
package main
import (
"fmt"
"net"
)
func main() {
addr := &net.TCPAddr{
IP: net.ParseIP("192.168.1.1"),
Port: 443,
}
fmt.Println(addr.String())
}
Результат выполнения кода:
"192.168.1.1:443"
Смотрите также
-
тип
net.TCPConn,
который представляет TCP-соединение -
функцию
net.Dial,
которая устанавливает соединение по указанному адресу -
функцию
net.Listen,
которая создает слушателя на указанном TCP-адресе -
функцию
net.SplitHostPort,
которая разделяет строку адреса на хост и порт