- 浏览: 458173 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (538)
- C/C++ Primer (69)
- Objective-C Primer (102)
- Python Primer (19)
- JavaScript Primer (1)
- Java Primer (37)
- PHP Primer (17)
- 泛 Linux (37)
- Shell Script (21)
- APUE (21)
- UNP__1&2 (19)
- NetWork (7)
- Oracle周边 (38)
- Mysql里边 (6)
- Windows技 (9)
- 简单算法 & 数据结构 (14)
- 设计模式 (6)
- GTK历程 (12)
- 工具使用 (25)
- 杂事 (23)
- 一些概念 (17)
- Web方面 (10)
- myCodeTools (9)
- ^未 竟$ (13)
- 硬件通信 (2)
- Games (1)
最新评论
http://blog.csdn.net/wbczyh/archive/2008/02/21/2111880.aspx
IO事件、定时器事件、信号事件
服务器TCP正确地给客户TCP发送一个FIN,
但客户进程阻塞于从标准输入中读入,此时它将看不到这个EOF。
此时需要一种预先告知内核的能力,内核一旦发现进程指定的I/O条件就绪,就通知进程。
I/O复用可由select和poll函数支持。
I/O复用场景:
1、客户处理多个描述符;
2、处理多个socket;
3、TCP服务器,即监听socket,又处理已连接的socket;
4、使用TCP,又要使用UDP;
5、处理多个服务或协议;
五种I/O模型:
1、阻塞式,blocking
2、非阻塞式,non blocking,轮询(polling)
3、I/O复用,multiplexing,回调类机制
4、信号驱动,signal-driven,非阻塞、回调类机制。信号在数据准备好后回调
5、异步I/O,asynchronous,与4相同,只是信号在数据复制后回调
前四种,I/O操作时,将请求进程阻塞。P127 6-6图
IO事件、定时器事件、信号事件
服务器TCP正确地给客户TCP发送一个FIN,
但客户进程阻塞于从标准输入中读入,此时它将看不到这个EOF。
此时需要一种预先告知内核的能力,内核一旦发现进程指定的I/O条件就绪,就通知进程。
I/O复用可由select和poll函数支持。
I/O复用场景:
1、客户处理多个描述符;
2、处理多个socket;
3、TCP服务器,即监听socket,又处理已连接的socket;
4、使用TCP,又要使用UDP;
5、处理多个服务或协议;
五种I/O模型:
1、阻塞式,blocking
2、非阻塞式,non blocking,轮询(polling)
3、I/O复用,multiplexing,回调类机制
4、信号驱动,signal-driven,非阻塞、回调类机制。信号在数据准备好后回调
5、异步I/O,asynchronous,与4相同,只是信号在数据复制后回调
前四种,I/O操作时,将请求进程阻塞。P127 6-6图
//返回:就绪句柄 int select(int maxfd1, //文件描述符的最大值加1 fd_set *readset, //监听读 fd_set *writeset, //监听写 fd_set *exceptset, //监听异常 struct timeval *timeout); // select常错: // 最大描述符加1; // 描述符集是(ket -- set)参数,FD_SET(int fd, fd_set *fdset); struct timeval { long tv_sec; /* seconds 秒数*/ long tv_usec; /* microseconds 微秒数*/ }; // 不懂内核对微秒的支持不同,不要太微秒。。。 // 永远等待 // 等待一段时间 // 根本不等待,轮询
void FD_ZERO(fd_set *fdset); //文件描述符集清空,必须对其进行初始化 void FD_SET (int fd, fd_set *fdset); //增加一个新的文件描述符 void FD_CLR (int fd, fd_set *fdset); //删除一个文件描述符 int FD_ISSET(int fd, fd_set *fdset); //判断文件描述符是否在该集合中
发表评论
-
UNP_1_Chapter 5__TCP_C/S示例
2011-04-01 15:34 636C/S启动时发生什么 C正常结上时发生什么 S在C前终止,C会 ... -
UNP_1_Chapter 4__基本TCP socket编程
2011-04-01 14:40 6124.7 fork与exec close、fork、引用计数器 ... -
unp封装的函数
2011-04-01 10:56 661// 屏蔽IPv4 IPv6 char *sock_n ... -
UNP_1_Chapter 3__基本socket
2011-03-31 18:53 748进程->内核,传递socket地址的函数:bind、co ... -
UNP_1_Chapter 2__TCP、UDP、SCTP
2011-03-31 16:58 6632.10、TCP端口号与并发服务器 服务器,根据端口号区分是否 ... -
UNP_1_Chapter 1__简介
2011-03-31 09:47 730编写计算机网络通信程序,首先要确定相互通信所用的协议(prot ... -
UNP_2_Read Line Function
2010-11-17 11:26 1010UNP Code ssize_t Readline(int ... -
UNP_2_Chapter 4
2010-11-16 09:01 556pipe、FIFO、named pipe -
UNP_2_Chapter 1
2010-11-10 15:00 613http://blog.csdn.net/menuconfig ... -
TCP_UDP
2010-10-22 10:52 774A进程用TCP发2个2k的包,接收方用1.5kbuffer ... -
发送邮件相关(1)
2010-09-30 11:43 574http://www.oschina.net/bbs/thre ... -
常用函数
2010-09-29 16:20 1052http://huiya1983.blog.163.com/b ... -
地址互转
2010-08-18 11:11 564http://hi.baidu.com/xiao___q/bl ... -
Libcap & WinPcap
2010-08-04 11:12 1134libpcap是unix/linux平 ... -
单播、组播、广播、组播以及泛洪
2010-07-30 17:29 1093http://www.360doc.com/content/0 ... -
socket IO 幽默解法
2010-07-19 10:59 698http://luckybirdtom.blog.hexun. ... -
基于winsock的阻塞和非阻塞通信模型
2010-07-16 18:10 1362copy:http://hi.baidu.com/yaof ... -
BSD Socket概述
2010-03-31 11:24 1287------------------------------- ...
相关推荐
在UNP_v2中,作者深入浅出地讲解了网络编程的基础知识,包括TCP/IP协议栈的工作原理、套接字API的使用、TCP和UDP连接的建立与管理、多路复用技术(如select、poll和epoll)、并发服务器设计、套接字选项、错误处理...
1. NOP:单字节选项,典型的用途是为某个后续选项落在 4 字节边界上进行填充 2. EOL:单字节选项,终止选项的处理 6. Record route 7.
"unp源码_UNIX_"这个标题暗示我们正在讨论一个与UNIX操作系统相关的开源代码库,可能是某个软件或工具的实现,其名称为UNP。在UNIX系统中,UNP可能代表"Unix Network Programming",这是一个广泛使用的术语,通常指...
第1章 T/TCP概述 1 1.1 概述 1 1.2 UDP上的客户-服务器 1 1.3 TCP上的客户-服务器 6 1.4 T/TCP上的客户-服务器 12 1.5 测试网络 15 1.6 时间测量程序 15 1.7 应用 17 1.8 历史 19 1.9 实现 20 1.10 小结 21 第2章 T/...
第1章 T/TCP概述 1 1.1 概述 1 1.2 UDP上的客户-服务器 1 1.3 TCP上的客户-服务器 6 1.4 T/TCP上的客户-服务器 12 1.5 测试网络 15 1.6 时间测量程序 15 1.7 应用 17 1.8 历史 19 1.9 实现 20 1.10 小结 21 第2章 T/...
第1章 T/TCP概述 1 1.1 概述 1 1.2 UDP上的客户-服务器 1 1.3 TCP上的客户-服务器 6 1.4 T/TCP上的客户-服务器 12 1.5 测试网络 15 1.6 时间测量程序 15 1.7 应用 17 1.8 历史 19 1.9 实现 20 1.10 小结 21 第2章 T/...
第1章 T/TCP概述 1 1.1 概述 1 1.2 UDP上的客户-服务器 1 1.3 TCP上的客户-服务器 6 1.4 T/TCP上的客户-服务器 12 1.5 测试网络 15 1.6 时间测量程序 15 1.7 应用 17 1.8 历史 19 1.9 实现 20 1.10 小结 21 第2章 T/...
第1章 T/TCP概述 1 1.1 概述 1 1.2 UDP上的客户-服务器 1 1.3 TCP上的客户-服务器 6 1.4 T/TCP上的客户-服务器 12 1.5 测试网络 15 1.6 时间测量程序 15 1.7 应用 17 1.8 历史 19 1.9 实现 20 1.10 小结 21 第2章 T/...
第1章 T/TCP概述 1 1.1 概述 1 1.2 UDP上的客户-服务器 1 1.3 TCP上的客户-服务器 6 1.4 T/TCP上的客户-服务器 12 1.5 测试网络 15 1.6 时间测量程序 15 1.7 应用 17 1.8 历史 19 1.9 实现 20 1.10 小结 21 第2章 T/...
第1章 T/TCP概述 1 1.1 概述 1 1.2 UDP上的客户-服务器 1 1.3 TCP上的客户-服务器 6 1.4 T/TCP上的客户-服务器 12 1.5 测试网络 15 1.6 时间测量程序 15 1.7 应用 17 1.8 历史 19 1.9 实现 20 1.10 小结 21 第2章 T/...
整套电子书分四部分上传 TCP-IP详解卷1.rar;TCP-IP详解卷2_1.rar TCP-IP详解卷2_2.rar;TCP-IP详解卷3.rar 都上传了。只下第一部分不全 目 录 译者序 前言 第一部分 TCP事务协议 第1章 T/TCP概述 1 1.1 概述 1 1.2...
第1章 T/TCP概述 1.1 概述 1.2 UDP上的客户-服务器 1.3 TCP上的客户-服务器 1.4 T/TCP上的客户-服务器 1.5 测试网络 1.6 时间测量程序 1.7 应用 1.8 历史 1.9 实现 1.10 小结 第2章 T/TCP协议 2.1 概述 2.2 T/TCP中...
第1章 T/TCP概述 1 1.1 概述 1 1.2 UDP上的客户-服务器 1 1.3 TCP上的客户-服务器 6 1.4 T/TCP上的客户-服务器 12 1.5 测试网络 15 1.6 时间测量程序 15 1.7 应用 17 1.8 历史 19 1.9 实现 20 1.10 小结 21 第2章 T/...
【标题】"unp.rar_W. Richard Stevens_c/C++_unp" 指的是一个压缩包文件,其中包含了著名计算机科学家W. Richard Stevens的作品,主要聚焦于C/C++编程语言,特别是关于网络编程的内容。"unp"可能是《UNIX Network ...
17.2和17.3中提及的全局变量(如图17-2所示)维护了协议的状态和资源管理,例如`unp_deferred`用于无用单元的收集,`unp_gc_int`记录是否正在执行收集,`unp_ino_t`分配给新套接字的伪i_node号,以及缓冲区大小的...
第1章 概述 1 1.1 引言 1 1.2 分层 1 1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 ...
6. **I/O模型**:Unix提供了多种I/O模型,如阻塞I/O、非阻塞I/O、多路复用(select、poll、epoll)和信号驱动I/O等,理解并灵活运用这些模型能提高程序的效率和可扩展性。 7. **并发处理**:在服务器端,通常需要...