gpt4 book ai didi

c++ - 我可以在 Windows 上使用 Asio(非增强)打开超过 2048 个套接字吗?

转载 作者:行者123 更新时间:2023-11-28 04:44:35 34 4
gpt4 key购买 nike

我正在尝试实际测试我的服务器程序,所以我开发了一个使用 Asio(non-boost) 模拟大量连接的简单程序。我在 Win7 上运行它。
然而,根据https://msdn.microsoft.com/en-us//library/kdfaxaay.aspx, C 运行时库对可以同时打开的文件数有 512 个限制。试图打开超过最大数量的文件描述符或文件流会导致程序失败。使用 _setmaxstdio 更改此数字。 并且 _setmaxstdio 在给定超过 2048 的参数时出现错误。
这是否意味着我不能使用 Asio 在 Windows 上打开超过 2048 个套接字?事实上,我尝试使用 async_connect 将超过 2048 个套接字(比如 4000)连接到服务器。并且我通过 error_code = 0 成功连接了它们。我没有遇到任何程序故障。所以有人知道这里发生了什么吗?我真的在 windows 上打开了 4000 套接字吗?

最佳答案

你的线索在这里:

The C run-time libraries have a 512 limit for the number of files that can be open at any one time.

C 运行时库 (CRT) 是为文件实现 C 标准函数的库 - fopen 等。它不处理套接字,因为它们不是标准 c 的一部分。

对于套接字,您可以使用 Windows Sockets (Winsock),这是一个不同的库。此限制不适用于它。

关于c++ - 我可以在 Windows 上使用 Asio(非增强)打开超过 2048 个套接字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49502910/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com