【发布时间】:2018-02-12 12:12:23
【问题描述】:
帮助我跟踪特定端口的状态:“LISTENING”、“CLOSE_WAIT”、“ESTABLISHED”。 我有一个使用 netstat 命令的模拟解决方案:
local command = 'netstat -anp tcp | find ":1926 " '
local h = io.popen(command,"rb")
local result = h:read("*a")
h:close()
print(result)
if result:find("ESTABLISHED") then
print("Ok")
end
但我需要对Lua socket library 做同样的事情。 有可能吗?
【问题讨论】:
-
为什么?您肯定已经知道自己的套接字的状态吗?如果你打电话给
listen(),那就是在听;如果您致电connect()或accept(),则它已建立;如果它已收到并结束流,则处于 CLOSE_WAIT 中。 -
@EJP 该问题并未说明套接字由进行查询的同一进程拥有。即使那样,你也不能轻易推断出一些状态——例如TIME_WAIT - 不查询内核。