2013-04-28 118 views
0

我有一個C++聊天服務器,在linux中運行並使用libev庫。如果我嘗試連接超過1024個客戶端,它將會以-1文件描述符的方式崩潰。C++服務器 - 超過1024個連接

我想允許超過1024併發連接到服務器。看看libev文檔,看起來它可以配置爲使用select,poll和epoll,儘管我不確定默認是什麼。

有關如何使用libev增加文件描述符限制的任何提示或參考將不勝感激!

+2

http://www.kegel.com/c10k.html – 2013-04-28 22:32:18

回答

1

您需要增加允許的每進程文件句柄。您可以允許用戶使用更多的文件句柄與此:

# Put this in /etc/security/limits.conf 
someusername  soft nofile 65535 
someusername  hard nofile 65535 

(其中someusername是將運行程序的用戶)

+0

而相關的系統調用是[setrlimit(2)](http://man7.org/linux/man-pages/man2/setrlimit.2.html)與'RLIMIT_NOFILE' – 2013-04-29 05:23:40