您的位置:首页 > 理论基础 > 计算机网络

UNIX网络编程卷一:第十四章 高级I/O

2015-08-12 10:01 399 查看
高级I/O

可设置超时时间

read和write的三个变体:

   1) recv  send  : 通过第四个参数从进程到内核传递标志

   2) readv  writev : 允许指定往其中输入数据或从其中输出数据的缓冲区向量.

   3) recvmsg  sendmsg: 结合了其他I/O函数的所有特性,并具备接收和发送辅助数据的新能力.

套接字超时

在套接字I/O上设置超时有3种方法:

1) 调用alarm (信号处理)

     它在指定超时期满时产生SIGALRM信号.

     相应的函数,如 connect, recvfrom 会被终端, 并设置errno=EINTR

2) 使用select (有设置时限功能)

3) 使用较新的套接字选项: SO_RCVTIMEO  SO_SNDTIMEO.  但是并非所有时限都支持.

     超时发生时, errno=EWOULDBLOCK

recv  send

比read write多一个参数flag.



readv writev

允许单个系统调用读入到或写出自一个或多个缓冲区.成为 分散读和集中写. (没理解)

recvmsg  sendmsg

最通用的I/O函数.  read readv recv  recvfrom 都可以替换成recvmsg.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: