插座
#
插座。插座-模式_
支持套接字。 提供 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"
#
插座。听,听-函数
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
[...]
#
插座。[医]再生-函数
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或更高版本。 |