Ruby 的 GServer 只想在本地主机上工作

标签 ruby sockets

TCPServer.new(port) 创建一个可以为来自本地主机或远程计算机的请求提供服务的服务器。

但是 GServer.new(port) 创建的服务器只能服务来自本地主机的请求。

查看GServer的源码,它调用了TCPServer.new(@host,@port)。 @host 默认为 DEFAULT_HOST,即 127.0.0.1。

TCPServer.new 的来源说:

# TCPServer.new([hostname,] port) => tcpserver
# Creates a new server socket bound to _port_.
# If _hostname_ is given, the socket is bound to it.

我想使用GServer,但不绑定(bind)到某个主机名。这样的事可能吗?网络上的每个示例仅使用本地主机。

看来,如果没有给GServer指定主机,GServer就不应该给TCPServer指定主机。

最佳答案

使用 0.0.0.0 作为主机名来绑定(bind)到所有接口(interface)。

关于Ruby 的 GServer 只想在本地主机上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4662403/

相关文章:

ruby - 如何获取下一个按字母顺序排列的unicode字符?

Ruby 对不同数据类型按多字段多方向排序

ruby - 非正统 cucumber ...在步骤定义中创建 Cucumber::Ast::Table

Ruby float to_r 计算。小数化为分数

linux - 如何将多个接口(interface)绑定(bind)到原始套接字

ios - 应用程序在非 Debug模式下崩溃

ruby - 如何在定义子类之后而不是之前触发ruby中的继承回调

java - 使用 Java 套接字读取 IP 层 header

java - 如何处理java.lang.Exception : Socket bind failed: [730013] exception

sockets - 使用 Docker 时,已建立的连接不会出现在 netstat 中