(我最初在堆栈溢出但读者建议我在这里发帖)
当您创建传出 TCP 连接时,大多数应用程序都会让操作系统选择要使用的端口。大多数操作系统为此使用 IANA 推荐的动态端口范围 49152-65535。但在 Windows 2003 及更早版本(包括 XP)中,Microsoft 使用端口 1025-5000。Microsoft 允许您通过 MaxUserPort TcpIP 注册表设置更改此范围的高端,但我认为无法更改低端。我需要让端口 4160 空闲以用于传入连接,在极少数情况下,传出连接会在我绑定该端口之前从我这里窃取该端口。
答案1
除了MaxUserPort之外,还需要指定ReservedPorts。
注册表项:HKLM\System\CurrentControlSet\Services\TCPIP\Parameters
注册表值:ReservedPorts 类型:多字符串值 值数据:1024-5000
您可能还想尝试仅指定 4160-4160 而不使用 ReservedPorts。