select 描述符就绪条件

转载 2012年03月22日 14:02:30

UNIX网络编程第三得到 第6章

准备好读:

1,套接字接收缓冲区的数据字节数大于等于,套接字接收缓冲区低水位线,可以用SO_RCVLOWAT套接选项来设置低水位线,对于TCP和UDP套按字,默认值为1

2,该连接的读半部分关闭(接收到了FIN的TCP连接).对这样的套接字读操作,返回0(EOF)

3,该套接字是一个监听套接字且已经完成的连接数不为0.对这样的套按字的accept通常不会阻塞

4,其上有一个套接字错误街处理.对这样的套按字的读操作将不阻塞并返回-1(错误),同时把errno设置成错误条件,这些待处理错误也可以通过指定SO_ERROR套接字选项调用getsockopt获取.


准备好写:

1,该套接字发送缓冲区的可用字节数大于等于套接字发送缓冲区低水位线的当前大小.并且或者该套接已经连接,或者套按字不需要连接(UDP),如果我们把这套接字设置成非阻塞,写操作将不阻塞并返回一个正值.可以使用SO_SNDLOWAT设置一个该套接字的低水位标记.对于TCP和UDP默认值通常为2048.

2,该连接的写半部关闭.对这样的套接写的写操作将产生SIGPIPE信号.

3使用非阻塞式的connect的套按字已经建立连接,或者connect已经失败.

4,其上有一个套接字错误等处理,对这样的套接字进行写操作会返回-,且,把ERROR设置成错误条件,可以通过指定SO_ERROR套按选项调用getsockopt获取并清除.


当某个套接字上发生错误时,它将由select标记为既可读又可写.


Select函数文件描述符集的准备条件

网络编程中,我们经常讨论等待某个描述符准备好I/O(读/写)或者等待其上发生一个待处理的异常条件。尽管可读性和可写性对于普通文件这样的描述符显而易见,然而对于引起诸如select返回套接字“就绪”的条...

【原创】TCP Socket 简单练习 --- select同时监测多个描述符

【原创】TCP Socket 简单练习 --- select同时监测多个描述符 服务器代码 /***************************************************...

为何select做多只支持1024个描述符

内核代码中,原因一览无余 每一位一个描述符,总共1024/8/4*32=1024个
  • wejoncy
  • wejoncy
  • 2016年05月06日 20:14
  • 1603

select函数的第一个参数为什么是最大描述符加1呢

ChinaUnix.net 标题: 一直不明白,select函数的第一个参数为什么是最大描述符加1呢? [打印本页] 作者: iw1210    时间: 2013-01-23 18:51   ...

Select()系统调用及文件描述符集fd_set的应用

Select()系统调用及文件描述符集fd_set的应用 在网络程序中,一个进程同时处理多个文件描述符是很常见的情况。select()系统调用可以使进程检测同时等待的多个I/O设备,当没有设备准备好...

select函数——单进程监视多个文件描述符

程序期待着来自两个源端的输入,但不知道哪个源端的输入先到。如果程序试图从源端A读入,而实际上只有来自源端B的输入可用,那么程序就会发生阻塞,怎么办? 保持阻塞状态,直到一组条件中至少有一个条件为真为...
  • zhccl
  • zhccl
  • 2012年07月15日 23:51
  • 3875

Linux网络编程 - TCP Socket 简单练习:select同时监测多个描述符

运行方式 服务器端,可以直接运行命令,也可以带参数运行,如果不带参数运行,则程序自主获取主机ip,然后默认设定port和lisnum的值。其中port默认为6666,lisnum默认为5. ...

Linux - Select()系统调用及文件描述符集fd_set的应用

select()机制中提供一fd_set的数据结构,实际上是一long类型的数组,每一个数组元素都能与一打开的文件句柄(不管是socket句柄,还是其他文件或命名管道或设备句柄)建立联系,建立联系的工...

Libev源码分析09:select突破处理描述符个数的限制

众所周知,Linux下的多路复用函数select采用描述符集表示处理的描述符。描述符集的大小就是它所能处理的最大描述符限制。通常情况下该值为1024,等同于每个进程所能打开的描述符个数。       ...
  • gqtcgq
  • gqtcgq
  • 2015年08月27日 22:24
  • 717

IO转接中用到的select函数FD_ZERO等文件描述符操作函数

原文点击打开链接 从别人的博客中转载过来了这一篇文章,经过重新编辑排版之后展现于此,做一个知识点保存与学习。     select函数用于在非阻塞中,当一个套接...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:select 描述符就绪条件
举报原因:
原因补充:

(最多只允许输入30个字)