网络编程文件描述符超过限制的解决办法
来源:互联网 发布:寒战2 知乎 编辑:程序博客网 时间:2024/06/11 17:58
一句话总结:采用一个空闲的文件描述符来解决
accept函数
头文件:
<sys/types.h>
<sys/socket.h>
函数形式
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
返回值
成功:返回新的套接字文件描述符
失败:返回-1,记录错误信息errno
EAGAIN:套接字处于非阻塞状态,当前没有连接请求。EBADF:非法的文件描述符。
ECONNABORTED:连接中断。
EINTR:系统调用被信号中断。
EINVAL:套接字没有处于监听状态,或非法的addrlen参数。
EMFILE:达到进程打开文件描述符限制。
ENFILE:达到打开文件数限制。
ENOTSOCK:文件描述符为文件的文件描述符。
EOPNOTSUPP:套接字类型不是SOCK_STREAM。
int connfd = accept4(listenfd, (struct sockaddr*)&sockaddr, &socklen, SOCK_NONBLOCK | SOCK_CLOEXEC);
if (connfd == -1)
{
if (errno == EMFILE)
{
close(idlefd);
idlefd = accept(listenfd,NULL, NULL);
close(idlefd);
idlefd = open("/dev/null", O_RDONLY | O_CLOEXEC);
continue;
}
else
ERR_EXIT("accept4");
}
阅读全文
0 0
- 网络编程文件描述符超过限制的解决办法
- 文件描述符限制
- Android 方法数超过限制的解决办法
- 文件描述符限制的设置
- MySQL打开的文件描述符限制
- MySQL打开的文件描述符限制
- Linux文件描述符限制
- Android 方法数超过64k限制的解决办法
- ecshop运行超过30秒超时的限制解决办法
- 修改Linux系统下的最大文件描述符限制
- 修改Linux系统下的最大文件描述符限制
- linux下最大文件描述符的限制
- mysql中的打开的文件描述符限制
- linux对文件描述符的种种限制
- Linux进程关于文件描述符的数量限制
- Linux进程关于文件描述符的数量限制
- 更改linux的最大文件描述符限制
- 修改Linux系统下的最大文件描述符限制
- mysql多个数据表进行字段匹配
- JAVA开发的23种设计模式之 --- 策略模式
- CSS标签(二)
- JavaScript操作cookie基础分析
- 大数的相加 乘 余 幂
- 网络编程文件描述符超过限制的解决办法
- PAT-L1-010. 比较大小
- 【机器学习实战】制作五子棋AI之四:基本规则的建立【2】
- ftp ssh nfs简介
- 如何在github的wiki中添加图片
- Struts2版本2.5之后关于通配符找不到某些method的解决方法
- JDBC连接数据库经验技巧
- js中‘!!’的本质
- 顺手的Hscan弱口令扫描