当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Socket.getaddrinfo用法及代码示例


本文简要介绍ruby语言中 Socket.getaddrinfo 的用法。

用法

getaddrinfo(nodename, servname[, family[, socktype[, protocol[, flags[, reverse_lookup]]]]]) → array

获取nodename 的地址信息:servname

请注意, Addrinfo.getaddrinfo 以面向对象的风格提供相同的函数。

family 应该是地址族,例如::INET、:INET6 等。

socktype 应该是套接字类型,例如::STREAM、:DGRAM、:RAW 等。

protocol应该是族中定义的协议,族默认为0。

flags 应该是 Socket::AI_* 常量的按位或。

Socket.getaddrinfo("www.ruby-lang.org", "http", nil, :STREAM)
#=> [["AF_INET", 80, "carbon.ruby-lang.org", "221.186.184.68", 2, 1, 6]] # PF_INET/SOCK_STREAM/IPPROTO_TCP

Socket.getaddrinfo("localhost", nil)
#=> [["AF_INET", 0, "localhost", "127.0.0.1", 2, 1, 6],  # PF_INET/SOCK_STREAM/IPPROTO_TCP
#    ["AF_INET", 0, "localhost", "127.0.0.1", 2, 2, 17], # PF_INET/SOCK_DGRAM/IPPROTO_UDP
#    ["AF_INET", 0, "localhost", "127.0.0.1", 2, 3, 0]]  # PF_INET/SOCK_RAW/IPPROTO_IP

reverse_lookup 指示第三个元素的形式,并且必须是以下之一。如果省略reverse_lookup,则默认值为nil

+true+, +:hostname+:  hostname is obtained from numeric address using reverse lookup, which may take a time.
+false+, +:numeric+:  hostname is the same as numeric address.
+nil+:              obey to the current +do_not_reverse_lookup+ flag.

如果首选 Addrinfo 对象,请使用 Addrinfo.getaddrinfo

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 Socket.getaddrinfo。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。