上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 59 下一页
摘要: select函数概况: select函数允许进程指示内核等待多个事件中的任何一个发生,并仅在有一个或多个事件发生或经历一段指定的时间后才唤醒它。 作为一个例子,我们可以调用select,告知内核仅在下列情况发生时才返回: (1)集合{1,4,5}中的任何描述字准备好读,或 (2)集合{2,7}中的任何描述字准备好写,或 (3)集合{1,4}中的任何描述字有异常条件待处理,或 (4)已经... 阅读全文
posted @ 2014-03-09 10:52 ITtecman 阅读(1226) 评论(0) 推荐(0) 编辑
摘要: 桶式排序算法描述: 如果我们有N个整数,范围从1到M(或从0到M-1),我们可以利用这个信息得到一种快速的排序,叫做桶式排序(bucket sort)。我们留置一个数组,称之为Count,大小为M,并初始化为零。于是,Count有M个单元(或桶),开始时他们都是空的。当Ai被读入时,Count[Ai]增1。在所有的输入被读进以后,扫描数组Count,打印输出排好序的表。该算法花费O(M+N)。引... 阅读全文
posted @ 2014-03-09 09:07 ITtecman 阅读(1553) 评论(0) 推荐(0) 编辑
摘要: 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) 编辑
摘要: 编写一个完整的TCP客户和服务器程序所需要的基本套接口函数:1、socket函数(客户端、服务器端都必须调用)参数family指明协议族(family),该参数也往往被称为协议域(domain)。所以有的书上声明如下:而且对于socket函数第一个参数,在不同书籍上可能会看到不同前缀的取值常量列表,如下两图所示:AF_xxx与PF_xxx:AF_前缀表地址族,PF_前缀表示协议族。历史上曾有这样的想法:单个协议族可以支持多个地址族,PF_值用来创建套接口,而AF_值用于套接口地址结构。但实际上,支持多个地址族的协议族从来就未实现过,而且头文件中为一给定协议定义的PF_值总是与此协议的AF_值相 阅读全文
posted @ 2014-03-07 15:45 ITtecman 阅读(948) 评论(0) 推荐(0) 编辑
摘要: /* poly.h */#ifndef _POLY_H#define _POLY_H#define MAXDEGREE 10struct poly{ int coefarray[MAXDEGREE + 1]; int highpower;};void zero_poly(struct poly *p);void print_poly(const struct poly *p... 阅读全文
posted @ 2014-03-07 11:32 ITtecman 阅读(420) 评论(0) 推荐(0) 编辑
摘要: 地址格式转换函数:它们在ASCII字符串(人们比较喜欢用的格式)与网络字节序的二进制值(此值存于套接口地址结构中)间转换地址。 1、inet_aton、inet_addr、inet_ntoa inet_aton、inet_addr和inet_ntoa在点分十进制数串(例如,”206.168.112.96“)与它的32位网络字节序二进制值间转换IPv4地址。 #include int i... 阅读全文
posted @ 2014-03-06 20:41 ITtecman 阅读(314) 评论(0) 推荐(0) 编辑
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 59 下一页