【发布时间】:2013-02-11 07:56:03
【问题描述】:
在命令提示符下,我可以运行 netstat 来查看某台机器上是否已使用单个端口,如下所示:
netstat -nap | grep <port-num>
我可以在 Linux 上调用 C++ 中的哪些函数来查看特定端口当前是否正在使用?我宁愿不对 netstat 本身进行系统调用。
【问题讨论】:
在命令提示符下,我可以运行 netstat 来查看某台机器上是否已使用单个端口,如下所示:
netstat -nap | grep <port-num>
我可以在 Linux 上调用 C++ 中的哪些函数来查看特定端口当前是否正在使用?我宁愿不对 netstat 本身进行系统调用。
【问题讨论】:
如果你这样做:
strace netstat -nap
您可以推断 netstat 正在做什么来获取该信息。
例如:
open directory: openat(AT_FDCWD, "/proc/2073/fd", ...) = 4)
get entries: getdents(4, /* 15 entries */, 32768) = 360
read symbolic links: readlink("/proc/2073/fd/4", "socket:[48395]", 29) = 14
that one was a socket connected on port 48395
【讨论】: