本博文主要针对UNP一书中的第六章内容来聊聊I/O复用技术以及其在网络编程中的实现
1. I/O复用技术I/O多路复用是指内核一旦发现进程指定的一个或者多个I/O条件准备就绪,它就通知该进程。I/O复用适用于以下场合:(1) 当客户处理多个描述符(一般是交互式输入或网络套接字),必须适用I/O复用(2) 当一个客户处理多个套接字时,这种情况很少见,但也可能出现(3) 当一个TCP服务器既要处理监听套...
分类:
其他好文 时间:
2016-07-14 15:27:41
阅读次数:
231
C语言代码示例C语言代码示例/* include unph *//* Our own header. Tabs are set for 4 spaces, not 8 */#ifndef __unp_h#define __unp_h//#include "../config.h" /* config... ...
分类:
其他好文 时间:
2016-06-27 17:18:30
阅读次数:
224
结论: linux开启SO_LINGER时,如果设置l_linger为非0, 不管是阻塞socket,非阻塞socket, 在这里都会发生阻塞, 而并不是UNP所讲到的( 非阻塞socket会立即返回EWOULDBLOCK) 测试结果见这里 https://www.nybek.com/blog/20 ...
分类:
其他好文 时间:
2016-04-22 16:02:02
阅读次数:
482
此博文是学习UNP(UNIX Network Programming)后的读书笔记,供以后自己翻阅回顾知识。
TCP、UDP概述
在前面《计算机网络与TCP/IP》栏目下已经介绍过一些关于TCP、UDP的相关知识TCP/IP(三):传输层TCP与UDP,这里只是简单从UNIX网络编程的角度介绍TCP、UDP协议。我们都知道UDP 缺乏可靠性、无连接的,面向数据报 的协议,如果想确保数据报到达目的地...
分类:
其他好文 时间:
2016-04-19 12:19:43
阅读次数:
186
1、先在官网 http://www.unpbook.com/unpv13e.tar.gz 下载源文件 2、解压:tar -xzvf unpv13e.tar.gz 3、cd unpv13e; ./configure 4、cd lib; make 5、以上生成了libunp.a 的静态库,将生成的静态库 ...
分类:
其他好文 时间:
2016-04-06 13:26:31
阅读次数:
142
TCP回射并发服务器 1.创建套接字,绑定服务器的众所周知端口 创建一个TCP套接字,在待绑定到该TCP套接字的网际网套接字地址结构中填入通配地址(INADDR_ANY) 和服务器的众所知周(SERV_PORT,在头文件中unp.h中其定义为9877) 绑定通配地址是在告知系统: 要是系统是多宿主机 ...
分类:
其他好文 时间:
2016-04-04 18:02:10
阅读次数:
147
创建套接字,装填网际网套接字地址结构 创建一个TCP套接字,用服务器的IP地址和端口号装填一个网际网套接字地址结构 我们可从命令行参数取得服务器的IP地址 从头文件unp.h取得服务器的众所周知端口号(SERV_PORT) 连接到服务器 connect建立与服务器的连接 str_cli函数完成剩余部 ...
分类:
其他好文 时间:
2016-04-04 17:52:30
阅读次数:
164
第五章中,有一个例子模拟客户端并发的终止TCP连接,服务器捕捉并处理SIGCHLD信号并调用waitpid函数防止僵死进程的出现。信号处理函数中核心的一句是: 1 while ( (pid = waitpid(-1, &statloc, WNOHANG)) > 0 ) 2 { 3 printf("w
分类:
其他好文 时间:
2016-01-30 18:01:25
阅读次数:
164
转自http://www.cnblogs.com/zhuwbox/p/4221934.html linux 下的 select 知识点 unp 的第六章已经描述的很清楚,我们这里简单的说下 select 的作用,并给出 select 的客户端实例。我们知道 select 是IO 多路复用的一个...
分类:
系统相关 时间:
2015-08-11 23:02:16
阅读次数:
175