ai didi

sockets - 我可以使用 Lua "socket"库找出端口的状态吗?

转载 作者:行者123 更新时间:2023-12-04 08:47:31 24 4
gpt4 key购买 nike

帮助我跟踪特定端口的状态:“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 做同样的事情.
是否可以?

最佳答案

就像@Peter 说的,netstat使用 proc 文件系统收集网络信息,尤其是端口绑定(bind)。 LuaSockets 有自己的库来检索连接信息。例如,

聆听
您可以使用 master:listen(backlog)它指定套接字愿意接收连接,将对象转换为服务器对象。服务器对象支持accept、getsockname、setoption、settimeout 和close 方法。参数 backlog 指定可以排队等待服务的客户端连接数。如果队列已满并且另一个客户端尝试连接,则连接被拒绝。如果成功,该方法返回 1。如果出错,该方法返回 nil,后跟一条错误消息。

以下方法将返回一个带有本地 IP 地址的字符串和一个带有 的数字。端口 .如果发生错误,该方法返回 nil。

master:getsockname()
client:getsockname()
server:getsockname()

也有这个方法: client:getpeername()这将返回一个字符串,其中包含对等方的 IP 地址,后跟 端口 对等方用于连接的编号。如果发生错误,该方法返回 nil。

对于“CLOSE_WAIT”、“ESTABLISHED”或您要检索的其他连接信息,请阅读 Official Documentation .它有你需要的一切,并有方法的简明解释。

关于sockets - 我可以使用 Lua "socket"库找出端口的状态吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46033948/

24 4 0
文章推荐: intellij-idea - 使用 hg4idea 插件将 bitbucket.org 上的私有(private) Mercurial 存储库克隆到 InetlliJ IDEA 中?
文章推荐: webpack - 如何通过 Webpack 在文件上运行任意 bash 脚本而无需为每种文件类型维护加载程序?
文章推荐: symfony - 向 LoadDataFixture 命令添加新选项
文章推荐: llvm - LLVM中的Union Type是如何派生的
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
全站热门文章
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com