如何进行netstat以查看C++中是否有端口在使用

How to do a netstat to see if a port is in use in C++?

本文关键字:是否 netstat 何进行 C++      更新时间:2023-10-16

在命令提示符下,我可以运行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