我想创建一个只监听特定接口(interface)(比如 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
感谢您的帮助。
最佳答案
您需要获取要监听的网络接口(interface)的 IP,并将其作为第一个参数传递给 TCPServer.new
。 .除了解析 %x(ifconfig <interface> | grep inet)
的输出外,我没有办法按名称指定接口(interface)。 .
关于Ruby:将监听套接字绑定(bind)到特定接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3302978/