gpt4 book ai didi

ruby - 如何在 Ruby 中绑定(bind)套接字?

转载 作者:数据小太阳 更新时间:2023-10-29 08:03:19 24 4
gpt4 key购买 nike

我打算直接使用 ruby​​ Socket 类,TCPSocket 不是一个选项。代码:

require 'socket'
include Socket::Constants

socket = Socket.new :INET, :STREAM, 0
socket.bind (Socket.pack_sockaddr_in 2200, 'localhost')

错误:

`bind': An address incompatible with the requested protocol was used.(Errno::EAFNOSUPPORT)

我在 Windows 机器上使用 ruby​​ 1.9.3。

额外信息:

Socket.pack_sockaddr_in(2200, 'localhost')

=> "\x17\x00\b\x98\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00"

主机文件:

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost

最佳答案

你能试试吗:

require 'socket'
include Socket::Constants

socket = Socket.new :INET, :STREAM, 0
socket.bind (Socket.pack_sockaddr_in 2200, '127.0.0.1')

可能是 localhost 返回了您的 IPv6 地址,但没有接受它。

关于ruby - 如何在 Ruby 中绑定(bind)套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33811091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com