我希望创建一个一次性的HTTP服务器来处理单个回调,需要帮助在Ruby中找到一个空闲的TCP端口。
这是我正在进行的工作的框架:
require 'socket'
t = STDIN.read
port = 8081
while s = TCPServer.new('127.0.0.1', port).accept
puts s.gets
s.print "HTTP/1.1 200/OK\rContent-type: text/plain\r\n\r\n" + t
s.close
exit
end
(It echoes standard input to the first connection and then dies.)
如何自动查找可用端口进行监听?
这似乎是在远程服务器上启动作业的唯一方法,然后通过唯一的作业ID回调。可以查询此作业ID以获取状态信息。为什么最初的设计者不能在调度作业时返回作业ID,我永远不会知道。单个端口无法使用,因为可能会发生多个回调的冲突;因此,端口仅用于约5秒钟。
addr
方法。你知道我在这种情况下如何获取端口吗? - troelsknsocket.getsockname.unpack("snA*")[1]
。 (该代码段是Python中的一行代码,用于获取套接字绑定的本地地址和端口号中的端口号。) - troelskn