【问题标题】:EventMachine - Port is in useEventMachine - 端口正在使用中
【发布时间】:2013-04-05 20:07:39
【问题描述】:

获取端口已在使用错误。

require 'em-websocket'
EM.run {
    EM::WebSocket.run(:host => "192.168.1.100", :port => 9001) do |ws|
        # Code goes here...
    end
}

然后在同一台服务器上同时不同的IP地址

require 'em-websocket'

EM.run {
    EM::WebSocket.run(:host => "192.168.1.101", :port => 9001) do |ws|
        # Code goes here...
    end
}

然后我得到这个错误...端口应该绑定到单独的 IP 地址,因此可以使用。

/usr/local/rvm/gems/ruby-1.9.3-p194/gems/eventmachine-1.0.3/lib/eventmachine.rb:526:in 'start_tcp_server': no acceptor (port is in use or requires root privileges) (RuntimeError)

我错过了什么吗?

更新:

运行:netstat -tulpn | grep ruby 显示:

tcp        0      0 0.0.0.0:9001                0.0.0.0:*                   LISTEN      718/ruby

清楚地显示服务器绑定到0.0.0.0 而不是192.168.1.100

如何让eventmachine 绑定到192.168.1.100

好像是个bug……

【问题讨论】:

    标签: ruby linux networking port eventmachine


    【解决方案1】:

    Afaik 0.0.0.0:9001 表示端口绑定在每个可用的 IP 地址上。所以它与192.168.1.100:9001 冲突。

    【讨论】:

    • 是的,你是对的。这就是问题。但是我怎样才能让 EventMachine 不绑定到 0.0.0.0
    • 退出 0.0.0.0:9001 上正在运行的进程,我敢打赌你可以在 192.168.1.100:9001 上启动 EventMachine。
    • 哇,我真的很笨,实际上是告诉 eventmachine 绑定到0.0.0.0。我感谢你帮助我更多地思考这个问题。
    猜你喜欢
    • 1970-01-01
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    • 2015-05-12
    • 2018-09-25
    • 2011-06-03
    相关资源
    最近更新 更多