0

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

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

我使用的代码直接来自文档

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 机器上

4

1 回答 1

1

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

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

试试这个:

Socket.pair(:INET, :STREAM, 0) # TCP socket
于 2013-03-13T14:32:35.600 回答