Функция net.Listen
Функция net.Listen используется для создания сетевого слушателя,
который ожидает входящие соединения по указанному протоколу и адресу.
В первый параметр передается строка с сетевым протоколом (например, "tcp", "udp", "unix"),
во второй параметр передается адрес в формате "host:port" или путь для Unix-сокетов.
Функция возвращает два значения: объект интерфейса net.Listener
и ошибку error, которая будет не nil в случае неудачи.
Синтаксис
ln, err := net.Listen(network, address)
Пример
Давайте создадим TCP-слушатель на локальном порту 8080:
package main
import (
"fmt"
"net"
)
func main() {
ln, err := net.Listen("tcp", "127.0.0.1:8080")
if err != nil {
fmt.Println("Error:", err)
return
}
defer ln.Close()
fmt.Println("Listening on", ln.Addr())
}
Результат выполнения кода:
Listening on 127.0.0.1:8080
Пример
Теперь создадим UDP-слушатель на порту 8081:
package main
import (
"fmt"
"net"
)
func main() {
ln, err := net.Listen("udp", "0.0.0.0:8081")
if err != nil {
fmt.Println("Error:", err)
return
}
defer ln.Close()
fmt.Println("UDP listening on", ln.Addr())
}
Результат выполнения кода:
UDP listening on 0.0.0.0:8081
Пример
Для Unix-сокетов можно указать путь к файлу:
package main
import (
"fmt"
"net"
)
func main() {
ln, err := net.Listen("unix", "/tmp/unix.sock")
if err != nil {
fmt.Println("Error:", err)
return
}
defer ln.Close()
fmt.Println("Unix listening on", ln.Addr())
}
Результат выполнения кода:
Unix listening on /tmp/unix.sock
Смотрите также
-
функцию
net.Dial,
которая используется для установки соединения с удаленным хостом -
функцию
net.DialTimeout,
которая устанавливает соединение с таймаутом -
интерфейс
net.Listener,
который определяет методы для управления слушателем -
функцию
http.ListenAndServe,
которая упрощает запуск HTTP-сервера