Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Python 5000+;并发TCP套接字连接_Python_Sockets_Tcp - Fatal编程技术网

Python 5000+;并发TCP套接字连接

Python 5000+;并发TCP套接字连接,python,sockets,tcp,Python,Sockets,Tcp,好的,现在我正在使用python中的套接字模块来创建一个TCP服务器。现在这个套接字需要处理大约5000多个TCP客户端。目前我正在使用线程启动一个侦听器函数,当触发.accept()时,它会将客户机对象附加到一个名为CLIENTS的列表中,在另一个函数中,该列表会反复发送数据并等待BrokenPipeError,以查看服务器是否仍能向客户机发送数据,如果触发此BrokenPipeError,则会从列表中删除客户端对象,这也会从单独的线程中运行。现在我让它运行的方式目前该脚本可以处理大约1000

好的,现在我正在使用python中的套接字模块来创建一个TCP服务器。现在这个套接字需要处理大约5000多个TCP客户端。目前我正在使用线程启动一个侦听器函数,当触发.accept()时,它会将客户机对象附加到一个名为CLIENTS的列表中,在另一个函数中,该列表会反复发送数据并等待BrokenPipeError,以查看服务器是否仍能向客户机发送数据,如果触发此BrokenPipeError,则会从列表中删除客户端对象,这也会从单独的线程中运行。现在我让它运行的方式目前该脚本可以处理大约1000个客户端,但任何超过此值的操作都会产生“打开的文件太多”错误,我尝试了许多不同的方法,例如为每个连接的客户端启动一个新线程,但显然这是无效的,因为我将启动5000多个线程。所以我想知道是否有其他的方法我可以做到这一点,谢谢