How to do a netstat to see if a port is in use in C++?
在命令提示符下,我可以运行 netstat 来查看某台机器上是否已经在使用单个端口,如下所示:
1 | netstat -nap | grep <port-num> |
我可以在 Linux 上调用 C 中的哪些函数来查看特定端口当前是否正在使用?我宁愿不对 netstat 本身进行系统调用。
如果你这样做:
1 | strace netstat -nap |
您可以推断 netstat 正在做什么来获取该信息。
例如:
1 2 3 4 | 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 |