Linux下socket非阻塞的一些技巧
来源:互联网 发布:e盾网络验证破解补丁 编辑:程序博客网 时间:2024/04/30 15:43
在Linux下,connect()建立连接,-1为失败,但是-1不一定就是完全失败!
-1的情况下,有的是因为非阻塞造成的,就是在error中设置了对应的出错情况,例如EINPROGRESS,EAGAIN等可以认为是“非致命错误”,认为是可以接受的,这种只是导致暂时阻塞等情况。
所以可以如下使用
int ret = connect(…);
if(!ret || noFatalError())
{
//认为是成功的
}
bool nonFatalError()
{
int err = errorno();
return (err == EINPROGRESS || err == EAGAIN || err == EWOULDBLOCK || err == EINTR);
}
类似的技巧还可以用于区分read、write时,是真失败还是阻塞的时候。
- Linux下socket非阻塞的一些技巧
- Linux下socket阻塞、非阻塞详解
- linux socket非阻塞模式下笔记
- Linux下socket阻塞模式与非阻塞模式
- linux下socket connect非阻塞与阻塞
- Linux socket非阻塞
- Socket的阻塞/非阻塞
- Socket的阻塞/非阻塞
- Socket的阻塞/非阻塞
- Socket的阻塞/非阻塞
- Socket的阻塞/非阻塞
- Socket的阻塞/非阻塞
- Socket的阻塞/非阻塞
- LINUX中SOCKET的阻塞与非阻塞
- linux socket的阻塞和非阻塞设置方法
- 非阻塞的Socket
- socket阻塞与非阻塞 windows下
- socket通信下 阻塞与非阻塞
- myeclipse设置jvm内存 及其分析
- 网站究竟应该如何优化外链
- Android横竖屏切换小结
- 电路常识性概念(6)-VCC、VDD和VSS三种标号的区别
- 敏捷开发的26条至理名言 (没法直接收藏,所以copy过来)
- Linux下socket非阻塞的一些技巧
- 电路常识性概念(7)-三态门与高阻态
- 电路常识性概念(8)-MOS管及简单CMOS逻辑门电路原理图
- android adb shell 命令大全
- cygwin安装hadoop的时候,报0755错误
- Perl格式化输出时间日期
- PHP&MYSQL复习提纲
- 设计模式七(采用pyside实现模式六的GUI)
- 避免类多次实例化,单例模式