Ruby:将侦听套接字绑定到特定接口

时间:2010-07-21 19:22:31

标签: ruby

我想创建一个只监听特定接口(例如eth0)的TCP套接字。我怎样才能做到这一点?我已经尝试浏览Socket API,但我可能无法正确理解。

到目前为止,这是我的听力方法:

def listen
  socket = TCPServer.open($port)
  while $looping do
    Thread.start(socket.accept) do |server|
      response = server.read
      puts "Command received: #{response}"
      if sanitize(response)
        execute(response)
      end
    end
  end
end

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您需要获取要监听的网络接口的IP,并将其作为第一个参数传递给TCPServer.new。除了解析%x(ifconfig <interface> | grep inet)的输出之外,我无法通过名称指定接口。