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 に答える