检查服务器的端口是否耗尽(Windows)

检查服务器的端口是否耗尽(Windows)

这是我在这里的第一个问题所以我希望我答对了。

我使用 UDP 数据包通过服务器-客户端结构进行通信,其中所有客户端都通过 UDP 与同一个服务器通信。

据我了解,对于每个向服务器发送数据包的客户端,服务器计算机都会为该客户端占用一个端口。这意味着,如果有大约 65,000 个客户端连接到同一台服务器计算机,它将没有更多端口可供连接客户端使用,这很糟糕。

当为客户端分配端口后,需要 4 分钟才能将其重新放入可用池中(根据https://learn.microsoft.com/en-us/windows/client-management/troubleshoot-tcpip-port-exhaust)。

我的问题是,我还没有找到检查服务器计算机上可用或已使用端口数量的方法。

例如,如果我的客户端计算机与服务器计算机之间有 2000 个不同的连接(我知道 UDP 是无连接的),CMD 命令“netstat -ano”会输出客户端计算机上正在使用的所有端口(当然超过 2000 个)。但是,在服务器上,使用相同命令不会显示那么多(少于 100 个)正在使用的端口,这意味着它不会显示为 2000 个连接分配的端口。

如何获取服务器上所有已使用/未使用的端口?

我意识到我可以在我的程序中获取正在使用的端口并计算池中有多少个可用端口,但这只处理我程序中的端口,而不处理其他程序可能使用的任何其他端口。

相关内容