插座
# *`插座。插座`*-模式_
支持套接字。 提供 IPAddr和亚型, TCPSocket的,和 UDPSocket的.
# *`插座。连接`*-Method
connect(path::AbstractString) -> PipeEndpoint
连接到命名的管道/UNIX域套接字 路径.
|
注意Unix上的路径长度限制在92到108字节之间. |
# *`插座。听!`*-Method
listen(path::AbstractString) -> PipeServer
在命名的管道/UNIX域套接字上创建和侦听。
|
注意Unix上的路径长度限制在92到108字节之间. |
# *`插座。获取资讯`*-函数
getaddrinfo(host::AbstractString, IPAddr) -> IPAddr
获取 主机 指定的 IPAddr 类型。 使用操作系统的底层getaddrinfo实现,它可以执行DNS查找。
*例子*
julia> getaddrinfo("localhost", IPv6)
ip"::1"
julia> getaddrinfo("localhost", IPv4)
ip"127.0.0.1"
getaddrinfo(host::AbstractString) -> IPAddr
获取第一个可用的IP地址 主机,这可能是一个 IPv4 或 IPv6 地址。 使用操作系统的底层getaddrinfo实现,它可以执行DNS查找。
# *`插座。[医]盖替帕德`*-函数
getipaddrs(addr_type::Type{T}=IPAddr; loopback::Bool=false) where T<:IPAddr -> Vector{T}
获取本地机器的IP地址。
设置可选项 addr_type 参数至 IPv4 或 IPv6 只导致返回该类型的地址。
该 环回 关键字参数指示环回地址(例如 ip"127.0.0.1", ip"::1")都包括在内。
|
兼容性
Julia1.2此功能自Julia1.2起可用。 |
*例子*
julia> getipaddrs()
5-element Vector{IPAddr}:
ip"198.51.100.17"
ip"203.0.113.2"
ip"2001:db8:8:4:445e:5fff:fe5d:5500"
ip"2001:db8:8:4:c164:402e:7e3c:3668"
ip"fe80::445e:5fff:fe5d:5500"
julia> getipaddrs(IPv6)
3-element Vector{IPv6}:
ip"2001:db8:8:4:445e:5fff:fe5d:5500"
ip"2001:db8:8:4:c164:402e:7e3c:3668"
ip"fe80::445e:5fff:fe5d:5500"
请参阅 n.岛,岛.
# *`插座。n.岛,岛`*-函数
islinklocaladdr(addr::IPAddr)
测试IP地址是否为链接本地地址。 链路本地地址不能保证在其网段之外是唯一的,因此路由器不会转发它们。 链接本地地址来自地址块 169.254.0.0/16 或 fe80::/10.
*例子*
filter(!islinklocaladdr, getipaddrs())
# *`插座。getalladdrinfo`*-函数
getalladdrinfo(host::AbstractString) -> Vector{IPAddr}
获取 主机. 使用操作系统的底层 获取资讯 实现,这可能会做一个DNS查找。
*例子*
julia> getalladdrinfo("google.com")
2-element Vector{IPAddr}:
ip"172.217.6.174"
ip"2607:f8b0:4000:804::200e"
# *`插座。泛南资讯`*-函数
getnameinfo(host::IPAddr) -> String
对IP地址执行反向查找,以使用操作系统的基础返回主机名和服务 泛南资讯 执行。
*例子*
julia> getnameinfo(IPv4("8.8.8.8"))
"google-public-dns-a.google.com"
# *`插座。getsock名称`*-函数
getsockname(sock::Union{TCPServer, TCPSocket}) -> (IPAddr, UInt16)
获取给定套接字绑定的IP地址和端口。
# *`插座。getpeername,getpeername`*-函数
getpeername(sock::TCPSocket) -> (IPAddr, UInt16)
获取给定套接字连接到的远程端点的IP地址和端口。 仅对连接的TCP套接字有效。
# *`插座。@ip_str`*-马科罗_
@ip_str str -> IPAddr
解析,解析 斯特拉 作为IP地址。
*例子*
julia> ip"127.0.0.1"
ip"127.0.0.1"
julia> @ip_str "2001:db8:0:0:0:0:2:1"
ip"2001:db8::2:1"
# *`插座。接受`*-函数
accept(server[, client])
接受给定服务器上的连接并返回到客户端的连接。 可以提供未初始化的客户端流,在这种情况下,将使用它而不是创建新流。
# *`插座。听,听`*-函数
listenany([host::IPAddr,] port_hint; backlog::Integer=BACKLOG_DEFAULT) -> (UInt16, TCPServer)
创建一个 服务器/服务器 在任何端口上,使用提示作为起点。 返回创建服务器的实际端口和服务器本身的元组。 Backlog参数定义了sockfd挂起连接队列可能增长的最大长度。
# *`基地。绑定`*-函数
bind(socket::Union{TCPServer, UDPSocket, TCPSocket}, host::IPAddr, port::Integer; ipv6only=false, reuseaddr=false, kws...)
绑定 插座 给给定的 主机:端口. 请注意 0.0.0.0 将在所有设备上收听。
* 只有ipv6 参数禁用双堆栈模式。 如果 ipv6only=true,只创建IPv6堆栈。
*如果 reuseaddr=真,多个线程或进程可以绑定到相同的地址没有错误,如果他们都设置 reuseaddr=真,但只有最后绑定的才会收到任何流量。
bind(chnl::Channel, task::Task)
关联的生命周期 chnl 有任务。 频道 chnl 任务终止时自动关闭。 任务中任何未捕获的异常都会传播到 chnl.
该 chnl 可以独立于任务终止显式关闭对象。 终止任务对已关闭没有影响 频道 物体。
当一个通道绑定到多个任务时,第一个终止的任务将关闭该通道。 当多个通道绑定到同一个任务时,任务的终止将关闭所有绑定的通道。
*例子*
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: TaskFailedException
Stacktrace:
[...]
nested task error: foo
[...]
# *`插座。发送`*-函数
send(socket::UDPSocket, host::IPAddr, port::Integer, msg)
发送 味精 结束 插座 到 主机:端口.
# *`插座。[医]再生`*-函数
recvfrom(socket::UDPSocket) -> (host_port, data)
从指定的套接字读取UDP数据包,返回 (host_port,数据),在哪里 host_port 将是一个InetAddr{IPv4} 或InetAddr{IPv6},视情况而定。
|
兼容性
Julia1.3在Julia1.3版本之前,第一个返回的值是一个地址( |
# *`插座。塞托普特`*-函数
setopt(sock::UDPSocket; multicast_loop=nothing, multicast_ttl=nothing, enable_broadcast=nothing, ttl=nothing)
设置UDP套接字选项。
* 多播/多播:多播数据包的环回(默认: 真的).
* 多播_ttl:多播数据包的TTL(默认: 什么都没有).
* [医]播音:标志必须设置为 真的 如果套接字将用于广播消息,否则UDP系统将返回访问错误(默认): 错误).
* ttl电平:套接字上发送的数据包的生存时间(默认): 什么都没有).
# *`插座。纳格尔`*-函数
nagle(socket::Union{TCPServer, TCPSocket}, enable::Bool)
Nagle的算法将多个小的TCP数据包批量化为较大的数据包。 这可以提高吞吐量,但会恶化延迟。 Nagle的算法默认启用。 此函数设置Nagle的算法是否在给定的TCP服务器或套接字上处于活动状态。 相反的选项被调用 [医]中医药 用其他语言。
|
兼容性
Julia1.3此功能需要Julia1.3或更高版本。 |
# *`插座。快速克`*-函数
quickack(socket::Union{TCPServer, TCPSocket}, enable::Bool)
在Linux系统上,TCP_QUICKACK在 插座.