當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。