1.什么情况下使用IO复用1.客户端处理多个描述符;2.客户端处理多个套接字;3.TCP服务器既要处理监听套接字,又要处理连接套接字;4.一个服务器既要处理TCP,又要处理UDP;5.一个服务器要处理多个服务或者多个协议;2.I/O模型阻塞式IO(默认情况下,所有套接字都为阻塞的);非阻塞式IO(当所有IO请求操作非得把本进程投入睡眠才能完成时,不要把本进程投入睡眠,轮询);IO复用(阻塞在select,poll的某一个只上,而不是阻塞在真正的IO系统调用之上,需要2个系统调用);信号驱动IO(通过sigaction安装一个信号处理函数,主循环继续,数据准备好时,内核为该进程产生一个SIGIO信号,自己在信号处理函数中复制数据);异步IO(告诉内核启动某个操作,并在内核在整个操作完成之后通知我们。与信号驱动IO的区别在于,信号驱动IO是由内核告知我们何时启动一个IO操作。而异步IO是由内核通知我们IO操作何时完成,即信号在数据被复制到应用缓冲区时产生);3.描述符准备就绪的条件一个套接字准备好读:1.该套接字接收缓冲区的数据字节大于套接字接收缓冲区低水位;2.该连接的读半部关闭,对这样的套接字的读操作不阻塞返回0;3.该套接字是一个监听套接字且已经完成的连接数不为0;4.其上有一个套接字错误待处理;一个套接字准备好写:1.该套接字发送缓冲区中可用空间大于套接字发送缓冲区低水位;2.该连接写半部关闭;3.使用非阻塞connect的套接字已经建立连接,或者connect已失败告终;4.该套接字有错误待处理;4.shutdown 与 close 区别1.close 只是把计数器 -1,直到0时才真正关闭;2.close 终止两个方向上的数据传送,shutdown 可以只终止一个方向;5.避免拒绝服务型攻击当服务器处理多个客户时,它绝对不能阻塞于只与某个单个客户相关的函数调用。1.使用非阻塞IO;2.让每个客户由单独的控制线程提供服务;3.对IO操作设置一个超时;

1.概述

2.I/O模型

3.select 函数

4.str_cli 函数

5.批量输入

6.shutdown 函数

7.str_cli 函数

8. TCP 回射服务器程序

9.pselect 函数

10.poll 函数

11.TCP 回射服务器程序

6.卷1(套接字联网API)---I/O复用 : select 和 poll 函数相关推荐

  1. UNIX网络编程.卷1,套接字联网API(第3版)(中文版)(Stevens经典著作,两位顶级网络编程专家应邀执笔修订)...

    UNIX网络编程.卷1,套接字联网API(第3版)(中文版)(Stevens经典著作,两位顶级网络编程专家应邀执笔修订) 基本信息 原书名: Unix Network Programming, Vol ...

  2. 《UNIX网络编程 卷1:套接字联网API(第3版)》——第2章 传输层:TCP、UDP和SCTP 2.1概述...

    本节书摘来自异步社区<UNIX网络编程 卷1:套接字联网API(第3版)>一书中的第2章,第2.1节,作者:[美]W. Richard Stevens , Bill Fenner , An ...

  3. 图灵社区 : 图书 : UNIX网络编程 卷1:套接字联网API(英文版•第3版)

    图灵社区 : 图书 : UNIX网络编程 卷1:套接字联网API(英文版•第3版) 图灵社区 : 图书 : UNIX网络编程 卷1:套接字联网API(英文版•第3版) UNIX网络编程 卷1:套接字联 ...

  4. 《UNIX网络编程 卷1:套接字联网API》学习笔记——基本TCP套接字编程

    UNIX网络编程--基本TCP套接字编程 socket 函数 connect 函数 bind 函数 listen 函数 accept 函数 fork 和 exec 函数 并发服务器 close 函数 ...

  5. 《Unix网络编程卷1:套接字联网API》读书笔记

    第一部分:简介和TCP/IP 第1章:简介 第2章:传输层:TCP.UDP和SCTP TCP:传输控制协议,复杂.可靠.面向连接协议 UDP:用户数据报协议,简单.不可靠.无连接协议 SCTP:流控制 ...

  6. 《UNIX网络编程:套接字联网API》啃书笔记(第8UDP套接字编程、11章地址转换)

    基本UDP套接字编程 下图为UDP客户/服务器程序的函数调用: 注意客户不与服务器建立连接,而是只管使用sendto函数给服务器发送数据报,其中必须指定目的地的地址作为参数.类似的,服务器不接受来自客 ...

  7. 《Unix网络编程卷1-套接字联网API》第一个例子编译 不通过问题解决

    <Unix网络编程卷1-套接字联网API>是本好书. 但是第一个例子不是很好编译. 需要如下步骤: 本人机器CentOS 5.4 1.下载源码 unpv13e解压到任意目录 然后按其rea ...

  8. socket套接字TCP API

    socket套接字TCP API socket概念 socket又称"套接字",是计算机网络中进程间通信数据通道的一个端点,或称之为句柄.IP地址+端口号就可以唯一确定一个sock ...

  9. 从Nginx绑定80端口学套接字编程

    <UNIX网络编程(卷1):套接字联网API(第3版)> ngx_connection.c ngx_int_t ngx_open_listening_sockets(ngx_cycle_t ...

  10. 008 查看套接字选项是否受支持(获取当前环境下套接字选项默认值)

    代码来源:<UNIX网络编程 卷1:套接字联网API> 说明:为以后查看套接字默认值使用 代码: 1 /* include checkopts1 */ 2 /* *INDENT-OFF* ...

最新文章

  1. ETSI GS MEC 016,Device application interface
  2. 电影点评系统论文java_毕业设计(论文)-基于web的电影点评系统分析与设计.docx...
  3. 获取元素到页面顶部的距离_组成网站页面结构的元素有哪些?
  4. debian下运行netstat失败
  5. SpringMVC 参数校验
  6. qt中QList使用removeAt()删除元素
  7. 把爬取信息导出到mysql,关于爬虫学习的一些小小记录(四)——爬取数据存入数据库...
  8. SPSS数据分析之描述性统计、区间估计与假设检验【操作详解】
  9. Android5.0和6.0之后新增的控件说明
  10. 浙江大华 研发类试题
  11. android word 转pdf插件下载,word转pdf转换器
  12. Excel中数据截取
  13. 随机存储器:SRAM、DRAM、SDRAM的区别
  14. Ubuntu18.04之lightdm取代gdm
  15. Android中相册的实现
  16. Python学的好,工作不愁找
  17. (附源码)ssm南工二手书交易平台 毕业设计172334
  18. 航拍“中国南北地理分界线” 感受独特景观
  19. AutoCAD关于选择的一些技巧(如何高效地框选)
  20. jquery实现手风琴展开效果

热门文章

  1. gcc 找不到 boot python 链接库的问题: /usr/bin/ld: cannot find -lboost_python
  2. 什么是OpenStack
  3. sudo执行脚本找不到环境变量
  4. js中自己实现each方法来遍历多维数组
  5. hdu 3339 In Action
  6. 类似于Function.bind的dojo.hitch --dojo Quick Start/dojo入门手册4
  7. 互联网大厂跳槽鄙视链
  8. R for data science 之 stringr包
  9. The pom for XXX is missing,no dependency information available
  10. 2018.09.02 bzoj1025: [SCOI2009]游戏(计数dp+线筛预处理)