套接字超时
用于阻塞套接字,io复用也有可能用到,毕竟异步和非阻塞套接字,io套接字不需要使用
方法
有三种
(1)用alarm函数,报警时发送SIGALRM信号,由系统中断来打断阻塞,捕获下不使用默认的SIGALRM处理程序。
(2)用select来判断时间是否超时,判断connect超时时需要connect非阻塞
(3)用SO_RCVTIMEO和SO_SNDTIMEO套接字选项设置超时,对connect无效
有三个read和write的类似函数
推荐全部换到recvmsg和sendmsg函数
辅助数据
没讲用法记个球,用到时在回来看。
排队数据查看
看数据干什么用呢
(1)用异步或非阻塞就不需要看有没有数据在排队了
(2)如果只是要看一下的话使用MSG_PEEK标志位来看,不阻塞的话就设成非阻塞的
(3)支持ioctl的PIONREAD命令,不知道是啥,说是第三个参数返回了排队数据,那用到的时候详细看就可以了
标准io接口
是由ANSI C标准进行规范的,socekt的接口。这本书知道现在使用的是另外一个标准的函数,有用到时再说。
高级轮询
一些非标的功能,当select/poll不够用时再看吧,epoll本书好像没介绍到