是否有Windows套接字API调用/选项来"block"一系列端口SO_EXCLUSIVEADDRUSE



在这篇(相当古老的)文章中,作者指出:

"端口阻塞

端口阻塞允许应用程序阻止其他应用程序对指定范围内的端口执行特定绑定。阻止端口范围时,应用程序必须选择一个连续的端口号范围,该范围介于MaxUserPort设置的值(默认为5000)+1和49151(对于未安装service Pack的Windows XP和Windows Server 2003)或65535(对于Windows Server 2003 service Pack 1)之间。在被阻止的端口范围内,不应有到端口的现有绑定。Windows套接字返回阻止范围内的最后一个端口号作为句柄。取消阻止(删除块)时,Windows套接字会取消阻止与取消阻止请求具有相同左边缘的范围。">

我从阅读这篇文章中得到的启示是,应用程序可以使用一些api来设置/取消设置,但我在试图搜索文档中的任何此类内容时都是空白的,我也不记得在我的套接字编程时代见过这样的功能。

Windows中有这样的功能吗?如果有,我们将衷心感谢指向它的文档的指针!

在winsock API本身中没有这样的调用,但我相信在LSP功能中有。另一种(简单但肮脏的<3)方法是只绑定()到您想要阻止的所有端口。

您可以通过MaxUserPort注册表值设置系统上动态客户端(绑定到任何可用套接字)使用的端口范围(适用于Vista以后的版本)。可以为tcp和udp套接字设置动态端口范围。以下链接中的更多详细信息:

最大用户端口

KB929851

因此,您可以根据您的需求设置范围(允许)

最新更新