摘要: I/O复用(select、poll)典型使用在下列网络应用场合:(1)当客户处理多个描述字(通常是交互式输入和网络套接口)时,必须使用I/O复用。(2)一个客户同时处理多个套接口是可能的,不过比较少见。(3)如果一个TCP服务器既要处理监听套接口,又要处理已连接的套接口,一般就要使用I/O复用。(4)如果一个服务器既要处理TCP,又要处理UDP,一般就要使用I/O复用。(5)如果一个服务器要处理多个服务或者多个协议,一般就要使用I/O复用。I/O复用并非只限于网络编程,许多正式应用也需要使用这项技术。 阅读全文
posted @ 2014-03-08 21:58 ITtecman 阅读(359) 评论(0) 推荐(0) 编辑
摘要: I/O模型 UNIX下可用的5种I/O模型: (1)阻塞I/O (2)非阻塞I/O (3)I/O复用(select和poll) (4)信号驱动I/O(SIGIO) (5)异步I/O 对于一个套接口上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待分组到达时,它被拷贝到内核中的某个缓冲区。第二步就是把数据从内核缓冲区拷贝到应用进程缓冲区。 1、阻塞I/O模型 最流行的I/O... 阅读全文
posted @ 2014-03-08 21:56 ITtecman 阅读(5470) 评论(2) 推荐(2) 编辑
摘要: 为了方便操作,Linux提供了一组用于查询协议的值及名称的函数。 xxxprotoxxx()函数: 上面的函数对文件/etc/protocols中的记录进行操作,文件中记录了协议的名称、值和别名等值,与struct protoent的定义一致。 使用协议族函数的例子: 首先,使用setprotoent(1)打开文件/etc/protocols,然后使用函数getprotoby... 阅读全文
posted @ 2014-03-08 17:11 ITtecman 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 目录 客户/服务器程序源码 POSIX信号处理 POSIX信号语义 处理SIGCHLD信号 处理僵死进程 处理被中断的系统调用 wait和waitpid函数 wait和waitpid函数的区别 网络编程可能会遇到的三种情况 TCP程序小结 数据格式 回射输入行这样一个客户/服务器程序是一个虽然简单然而却很有效的网络应用程序的例子。实现任何客户/服务器网络应用所需的所有... 阅读全文
posted @ 2014-03-08 15:21 ITtecman 阅读(3952) 评论(0) 推荐(0) 编辑
摘要: /* list_poly.h */#ifndef _LIST_POLY_H#define _LIST_POLY_Hstruct node;typedef struct node *ptr_to_node;typedef struct node *position;typedef struct node *list;list create_list();void insert(int coef... 阅读全文
posted @ 2014-03-08 08:59 ITtecman 阅读(340) 评论(0) 推荐(0) 编辑