我正在编写套接字客户端和服务器程序。现在我有一个问题 我可以连接多少个MAX客户端服务器,因为接受系统调用返回其文件存储在文件中的新文件描述符 描述符表和MAX文件描述符是1024.那么MAX客户端是1024吗?
如果max client受限并且所有客户端都连接到服务器,则在这种情况下服务器将不接受任何新连接,并且某些客户端仅连接而不执行任何操作。如何识别这样的客户端并关闭它们之间的连接以再次接受新的conncetion。
答案 0 :(得分:1)
文件描述符的最大数量取决于您使用的操作系统 - 不同的操作系统将有不同的限制。如果需要,您可以使用ulimit
bash命令或让进程调用setrlimit()
来提高流程限制。 (有关详细信息,请参阅此link)
关于识别空闲客户端的第二个问题 - 一种方法是保持与每个套接字关联的最后活动时间戳,并在send()
或recv()
时将其更新为当前时间notify-send
该套接字上的任何字节。然后,如果/当你需要释放一些套接字时,可以先关闭具有最小last-activity-timestamp值的套接字。