Spec-Zone.ru › Julia 1.0

Сокеты

Sockets.connectМетод

connect([host], port::Integer) -> TCPSocket

Подключиться к хосту host на порту port.

исходный код

Sockets.connectМетод

connect(path::AbstractString) -> PipeEndpoint

Подключиться к именованной пайпе/UNIX-доменному сокету по адресу path.

исходный код

Sockets.listenМетод

listen([addr, ]port::Integer; backlog::Integer=BACKLOG_DEFAULT) -> TCPServer

Прослушивать порт по адресу, указанному в addr. По умолчанию прослушивает только на localhost. Чтобы прослушивать на всех интерфейсах, передайте IPv4(0) или IPv6(0) соответственно. backlog определяет, сколько подключений могут быть в очереди (до вызова accept) прежде, чем сервер начнет отклонять их. Значение по умолчанию backlog равно 511.

исходный код

Sockets.listenМетод

listen(path::AbstractString) -> PipeServer

Создать и прослушивать именованную пайп/UNIX-доменный сокет.

исходный код

Sockets.getaddrinfoФункция

getalladdrinfo(host::AbstractString, IPAddr=IPv4) -> IPAddr

Получает первый IP-адрес host заданного типа IPAddr. Использует реализацию getaddrinfo операционной системы, которая может выполнять поиск по DNS.

исходный код

Sockets.getipaddrФункция

getipaddr() -> IPAddr

Получить IP-адрес локальной машины.

Примеры

julia> getipaddr()
ip"192.168.1.28"
исходный код

Sockets.getalladdrinfoФункция

getalladdrinfo(host::AbstractString) -> Vector{IPAddr}

Получает все IP-адреса host. Использует реализацию getaddrinfo операционной системы, которая может выполнять поиск по DNS.

Пример

julia> getalladdrinfo("google.com")
2-element Array{IPAddr,1}:
 ip"172.217.6.174"
 ip"2607:f8b0:4000:804::200e"
исходный код

Sockets.getnameinfoФункция

getnameinfo(host::IPAddr) -> String

Выполняет обратный поиск IP-адреса для получения имени хоста и службы с помощью реализации getnameinfo операционной системы.

Примеры

julia> getnameinfo(Sockets.IPv4("8.8.8.8"))
"google-public-dns-a.google.com"
исходный код

Sockets.getsocknameФункция

getsockname(sock::Union{TCPServer, TCPSocket}) -> (IPAddr, UInt16)

Получить IP-адрес и порт, к которому привязан данный сокет.

исходный код

Sockets.getpeernameФункция

getpeername(sock::TCPSocket) -> (IPAddr, UInt16)

Получить IP-адрес и порт удалённого конечного узла, к которому подключен данный сокет. Действительно только для подключённых TCP-сокетов.

исходный код

Sockets.IPv4Тип

IPv4(host::Integer) -> IPv4

Возвращает объект IPv4 из IP-адреса host в формате Integer.

julia> IPv4(3223256218)
ip"192.30.252.154"
исходный код

Sockets.IPv6Тип

IPv6(host::Integer) -> IPv6

Возвращает объект IPv6 из IP-адреса host в формате Integer.

julia> IPv6(3223256218)
ip"::c01e:fc9a"
исходный код

Sockets.TCPSocketТип

TCPSocket(; delay=true)

Открыть TCP-сокет с использованием libuv. Если delay true, libuv откладывает создание дескриптора файла сокета до первого вызова bind. TCPSocket имеет различные поля для обозначения состояния сокета и его буферов отправки/приёма.

исходный код

Sockets.UDPSocketТип

UDPSocket()

Открыть UDP-сокет с использованием libuv. UDPSocket имеет различные поля для обозначения состояния сокета.

исходный код

Sockets.acceptФункция

accept(server[,client])

Принимает подключение на данном сервере и возвращает подключение к клиенту. Неинициализированный клиентский поток может быть предоставлен, в этом случае он будет использован вместо создания нового потока.

исходный код

Sockets.listenanyФункция

listenany([host::IPAddr,] port_hint) -> (UInt16, TCPServer)

Создать TCPServer на любом порту, используя hint в качестве отправной точки. Возвращает кортеж фактического порта, на котором был создан сервер, и сам сервер.

исходный код

Base.bindФункция

bind(chnl::Channel, task::Task)

Связать жизненный цикл chnl с задачей. Channel chnl автоматически закрывается при завершении задачи. Любое неперехваченное исключение в задаче передается всем ожидающим процессам на chnl.

Объект chnl может быть явно закрыт независимо от завершения задачи. Завершение задач не влияет на уже закрытые объекты Channel.

Когда канал связан с несколькими задачами, первая завершившаяся задача закроет канал. Когда несколько каналов связаны с одной задачей, завершение задачи закроет все связанные каналы.

Примеры

julia> c = Channel(0);

julia> task = @async foreach(i->put!(c, i), 1:4);

julia> bind(c,task);

julia> for i in c
           @show i
       end;
i = 1
i = 2
i = 3
i = 4

julia> isopen(c)
false
julia> c = Channel(0);

julia> task = @async (put!(c,1);error("foo"));

julia> bind(c,task);

julia> take!(c)
1

julia> put!(c,1);
ERROR: foo
Stacktrace:
[...]
исходный код
bind(socket::Union{UDPSocket, TCPSocket}, host::IPAddr, port::Integer; ipv6only=false, reuseaddr=false, kws...)

Привязать socket к заданному host:port. Обратите внимание, что 0.0.0.0 будет прослушивать все устройства.

  • Параметр ipv6only отключает режим двойного стека. Если ipv6only=true, создаётся только стек IPv6.
  • Если reuseaddr=true, несколько потоков или процессов могут привязаться к одному и тому же адресу без ошибок, если они все установили reuseaddr=true, но только последний, привязавшийся, получит какой-либо трафик.
исходный код

Sockets.sendФункция

send(socket::UDPSocket, host, port::Integer, msg)

Отправить msg по socket на host:port.

исходный код

Sockets.recvФункция

recv(socket::UDPSocket)

Прочитать UDP-пакет из указанного сокета и вернуть полученные байты. Этот вызов блокирующий.

исходный код

Sockets.recvfromФункция

recvfrom(socket::UDPSocket) -> (address, data)

Прочитать UDP-пакет из указанного сокета, возвращая кортеж (address, data), где address будет либо IPv4, либо IPv6, как это уместно.

исходный код

Sockets.setoptФункция

setopt(sock::UDPSocket; multicast_loop = nothing, multicast_ttl=nothing, enable_broadcast=nothing, ttl=nothing)

Установить параметры UDP-сокета.

  • multicast_loop: петля обратной связи для мультикастовых пакетов (по умолчанию: true).
  • multicast_ttl: TTL для мультикастовых пакетов (по умолчанию: nothing).
  • enable_broadcast: Флаг должен быть установлен в true если сокет будет использоваться для широковещательных сообщений, иначе UDP-система вернет ошибку доступа (по умолчанию: false).
  • ttl: Время жизни пакетов, отправленных по сокету (по умолчанию: nothing).
исходный код

© 2009–2019 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.0.4/stdlib/Sockets/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API