如何确定网络连接使用的端口?

时间:2013-01-08 20:36:34

标签: c++ winapi networking

如何查询Windows以确定每个连接在C ++中使用哪个端口?

3 个答案:

答案 0 :(得分:3)

您是否尝试过获取TCP表?

您可以向Windows询问所有TCP连接的表格,其中显示了本地地址,本地端口,远程地址,远程端口以及具有该连接的程序的进程ID。

获取表格: http://msdn.microsoft.com/en-us/library/windows/desktop/bb408406(v=vs.85).aspx

表格条目: http://msdn.microsoft.com/en-us/library/windows/desktop/bb485761(v=vs.85).aspx

我不会试图做一个例子,因为第一个链接上有一个很好的例子。如果您需要两种类型的连接,那么UDP也是等效的。

答案 1 :(得分:2)

您可以使用getsockname() API查询套接字绑定的端口,然后检查sockaddr_in结构的sin_port字段。

答案 2 :(得分:1)

您可以在Windows上使用命令netstat -b -a。如果必须,可以将其称为SHELL电话。