Ruby Socket.pair:“使用了与所请求的协议不兼容的地址”

时间:2013-03-13 14:28:51

标签: ruby

出于我自己的好奇心,我一直在挖掘各种Ruby标准库。 'socket'库有一个创建套接字对的方法。当我尝试创建一个时,我收到以下错误消息:

Errno::EAFNOSUPPORT: An address incompatible with the requested protocol was used. - socketpair(2)

我使用的代码直接来自documentation

s1, s2 = Socket.pair(:UNIX, :DGRAM, 0)
s1.send "a", 0
s1.send "b", 0
p s2.recv(10) #=> "a"
p s2.recv(10) #=> "b"

关于可能导致这种情况的任何想法?

注意:我在Windows机器上

1 个答案:

答案 0 :(得分:1)

由于您使用的是Windows,问题就在于这一行:

Socket.pair(:UNIX, :DGRAM, 0)  #=> :UNIT refers to UNIX stream socket

请改为尝试:

Socket.pair(:INET, :STREAM, 0) # TCP socket