Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 连接插座的限制boost::asio_C++_Linux_Boost Asio - Fatal编程技术网

C++ 连接插座的限制boost::asio

C++ 连接插座的限制boost::asio,c++,linux,boost-asio,C++,Linux,Boost Asio,我有一个问题,我使用boost::asio实现我的服务器侦听器,但是当连接的套接字数>1000-1100时使用boost::asio时,我出现了一个错误-“打开的文件太多” 我怎样才能解决这个问题 谢谢 这不是boost::asio的问题。这是操作系统级的问题。尝试在命令行上执行ulimit-a,您将看到“打开的文件”有一个限制。这是允许进程拥有的文件描述符的数量。它是可以改变的,但这是你出错的原因 此堆栈溢出问题“”讨论如何更改此限制。简单的回答是,这并不是特别简单。这是一个操作系统级配置参数

我有一个问题,我使用boost::asio实现我的服务器侦听器,但是当连接的套接字数>1000-1100时使用boost::asio时,我出现了一个错误-“打开的文件太多”

我怎样才能解决这个问题


谢谢

这不是boost::asio的问题。这是操作系统级的问题。尝试在命令行上执行
ulimit-a
,您将看到“打开的文件”有一个限制。这是允许进程拥有的文件描述符的数量。它是可以改变的,但这是你出错的原因


此堆栈溢出问题“”讨论如何更改此限制。简单的回答是,这并不是特别简单。这是一个操作系统级配置参数。

这可能是特定于平台的(例如,您可能遇到软限制或硬系统限制,或者只是耗尽了一些资源)。请描述您的平台(操作系统等)。我在客户端也有同样的问题。这让我感到惊讶。因为我一次最多只能运行3个并发套接字,但当我尝试创建3个并发套接字时,仍然会出现“太多文件打开错误”。插座我检查了限制,它是1024个文件。由于这个问题比客户机启动时间晚6个小时左右开始出现,我怀疑我在完成后并没有真正销毁socket obj。但当超出范围时,是否会自动被销毁?因为我没有显式地调用析构函数。