出于我自己的好奇心,我一直在挖掘各种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机器上
答案 0 :(得分:1)
由于您使用的是Windows,问题就在于这一行:
Socket.pair(:UNIX, :DGRAM, 0) #=> :UNIT refers to UNIX stream socket
请改为尝试:
Socket.pair(:INET, :STREAM, 0) # TCP socket