3

我一直在研究一个关于 TCP/IP 套接字连接和通过这些套接字传输消息的项目。我正在连接到具有特定 IP 地址的 UNIX 服务器并建立套接字连接。到目前为止,我可以管理来自 1 台主机的大约 16000 个连接(在这种情况下,这是我自己的电脑)。当我尝试从其他主机(Mac Osx 或 Windows PC)建立其他连接时,我达到了相同的最大连接数 16000。

我可以在服务器端有 65536 个连接,我确实保持了这一点。但只有在 4 台不同的计算机中的每台都有 16000 个连接时。我想知道为什么我有这个以及如何仅从 1 个主机建立超过 16000 个连接。

4

1 回答 1

3

在 Windows 系统上,TCP 堆栈受多个注册表参数的约束。它们晦涩难懂且文档记录不完善,并且随着更新的(Vista、Win7、Win8)版本发生了变化,它们在桌面操作系统和服务器操作系统风格之间也有所不同。

一些知识库和 MSDN 文章涵盖了该主题:

但是这篇文章更能解决您的问题:避免 TCP/IP 端口耗尽。尽管与 BizTalk 相关,但主题和解决方案是通用的:增加MaxUserPort和减少TcpTimedWaitDelay(但要小心后一个)。您的系统最终支持的细节各不相同,因此您必须使用这些设置。确保您的测试机器是 64 位处理器、64 位操作系统,并且有足够的 RAM (>4Gb)。

对于 OS XI,希望其他人提供详细信息。

于 2013-09-11T12:39:16.757 回答