- 浏览: 460525 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (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)
最新评论
UNP Code
ssize_t Readline(int fd, void *ptr, size_t maxlen) { ssize_t n; if ( (n = readline(fd, ptr, maxlen)) < 0) err_sys("readline error"); // 套头函数,多了错误信息 return(n); }
ssize_t readline(int fd, void *vptr, size_t maxlen) { int n, rc; char c, *ptr; ptr = vptr; for (n = 1; n < maxlen; n++) { if ( (rc = my_read(fd, &c)) == 1) // my_read相当于一个数据池的作用 { // readline只专注于行的逻辑关系 *ptr++ = c; if (c == '\n') break; /* newline is stored, like fgets() */ } else { if (rc == 0) { if (n == 1) return(0); /* EOF, no data read */ else break; /* EOF, some data was read */ } else return(-1); /* error, errno set by read() */ } } *ptr = 0; /* null terminate like fgets() */ return(n); }
// static function static ssize_t my_read(int fd, char *ptr) { static int read_cnt = 0; static char *read_ptr; static char read_buf[MAXLINE]; // 缓存池 if (read_cnt <= 0) { again: // sizeof(read_buf) = 1 => read_cnt = 1,这里可以做缓存机制 if ( (read_cnt = read(fd, read_buf, sizeof(read_buf))) < 0) { if (errno == EINTR) // Interrupted system call goto again; return(-1); // 其它错误 } if (read_cnt == 0) return(0); read_ptr = read_buf; } read_cnt--; *ptr = *read_ptr++; return(1); }
发表评论
-
UNP_1_Chapter 6__select_pool
2011-04-12 16:57 674http://blog.csdn.net/wbczyh/arc ... -
UNP_1_Chapter 5__TCP_C/S示例
2011-04-01 15:34 645C/S启动时发生什么 C正常结上时发生什么 S在C前终止,C会 ... -
UNP_1_Chapter 4__基本TCP socket编程
2011-04-01 14:40 6164.7 fork与exec close、fork、引用计数器 ... -
unp封装的函数
2011-04-01 10:56 665// 屏蔽IPv4 IPv6 char *sock_n ... -
UNP_1_Chapter 3__基本socket
2011-03-31 18:53 753进程->内核,传递socket地址的函数:bind、co ... -
UNP_1_Chapter 2__TCP、UDP、SCTP
2011-03-31 16:58 6662.10、TCP端口号与并发服务器 服务器,根据端口号区分是否 ... -
UNP_1_Chapter 1__简介
2011-03-31 09:47 737编写计算机网络通信程序,首先要确定相互通信所用的协议(prot ... -
UNP_2_Chapter 4
2010-11-16 09:01 561pipe、FIFO、named pipe -
UNP_2_Chapter 1
2010-11-10 15:00 617http://blog.csdn.net/menuconfig ... -
TCP_UDP
2010-10-22 10:52 778A进程用TCP发2个2k的包,接收方用1.5kbuffer ... -
发送邮件相关(1)
2010-09-30 11:43 577http://www.oschina.net/bbs/thre ... -
常用函数
2010-09-29 16:20 1057http://huiya1983.blog.163.com/b ... -
地址互转
2010-08-18 11:11 570http://hi.baidu.com/xiao___q/bl ... -
Libcap & WinPcap
2010-08-04 11:12 1139libpcap是unix/linux平 ... -
单播、组播、广播、组播以及泛洪
2010-07-30 17:29 1097http://www.360doc.com/content/0 ... -
socket IO 幽默解法
2010-07-19 10:59 706http://luckybirdtom.blog.hexun. ... -
基于winsock的阻塞和非阻塞通信模型
2010-07-16 18:10 1371copy:http://hi.baidu.com/yaof ... -
BSD Socket概述
2010-03-31 11:24 1294------------------------------- ...
相关推荐
UNP书籍是网络编程领域的权威之作,由W. Richard Stevens撰写,对理解和实践网络通信有着深远的影响。这份压缩包文件包含了part3和part4两部分,意味着我们需要将part1到part5的所有部分下载并放在同一个目录下,...
1. NOP:单字节选项,典型的用途是为某个后续选项落在 4 字节边界上进行填充 2. EOL:单字节选项,终止选项的处理 6. Record route 7.
"unp源码_UNIX_"这个标题暗示我们正在讨论一个与UNIX操作系统相关的开源代码库,可能是某个软件或工具的实现,其名称为UNP。在UNIX系统中,UNP可能代表"Unix Network Programming",这是一个广泛使用的术语,通常指...
17.11 PRU_CONNECT2请求和unp_connect2 函数 195 17.12 socketpair系统调用 198 17.13 pipe系统调用 202 17.14 PRU_ACCEPT请求 203 17.15 PRU_DISCONNECT请求和 unp_disconnect函数 204 17.16 PRU_SHUTDOWN请求和unp...
17.11 PRU_CONNECT2请求和unp_connect2 函数 195 17.12 socketpair系统调用 198 17.13 pipe系统调用 202 17.14 PRU_ACCEPT请求 203 17.15 PRU_DISCONNECT请求和 unp_disconnect函数 204 17.16 PRU_SHUTDOWN请求和unp...
17.11 PRU_CONNECT2请求和unp_connect2 函数 195 17.12 socketpair系统调用 198 17.13 pipe系统调用 202 17.14 PRU_ACCEPT请求 203 17.15 PRU_DISCONNECT请求和 unp_disconnect函数 204 17.16 PRU_SHUTDOWN请求和unp...
17.11 PRU_CONNECT2请求和unp_connect2 函数 195 17.12 socketpair系统调用 198 17.13 pipe系统调用 202 17.14 PRU_ACCEPT请求 203 17.15 PRU_DISCONNECT请求和 unp_disconnect函数 204 17.16 PRU_SHUTDOWN请求和unp...
17.11 PRU_CONNECT2请求和unp_connect2 函数 195 17.12 socketpair系统调用 198 17.13 pipe系统调用 202 17.14 PRU_ACCEPT请求 203 17.15 PRU_DISCONNECT请求和 unp_disconnect函数 204 17.16 PRU_SHUTDOWN请求和unp...
17.11 PRU_CONNECT2请求和unp_connect2 函数 195 17.12 socketpair系统调用 198 17.13 pipe系统调用 202 17.14 PRU_ACCEPT请求 203 17.15 PRU_DISCONNECT请求和 unp_disconnect函数 204 17.16 PRU_SHUTDOWN请求和unp...
17.11 PRU_CONNECT2请求和unp_connect2 函数 195 17.12 socketpair系统调用 198 17.13 pipe系统调用 202 17.14 PRU_ACCEPT请求 203 17.15 PRU_DISCONNECT请求和 unp_disconnect函数 204 17.16 PRU_SHUTDOWN请求和unp...
TCP-IP详解卷2_1.rar TCP-IP详解卷2_2.rar;TCP-IP详解卷3.rar 都上传了。只下第一部分不全 目 录 译者序 前言 第一部分 TCP事务协议 第1章 T/TCP概述 1 1.1 概述 1 1.2 UDP上的客户-服务器 1 1.3 TCP上的客户-...
17.11 PRU_CONNECT2请求和unp_connect2函数 17.12 socketpair系统调用 17.13 pipe系统调用 17.14 PRU_ACCEPT请求 17.15 PRU_DISCONNECT请求和unp_disconnect函数 17.16 PRU_SHUTDOWN请求和unp_shutdown函数 17.17 ...
17.11 PRU_CONNECT2请求和unp_connect2 函数 195 17.12 socketpair系统调用 198 17.13 pipe系统调用 202 17.14 PRU_ACCEPT请求 203 17.15 PRU_DISCONNECT请求和 unp_disconnect函数 204 17.16 PRU_SHUTDOWN请求和unp...
2. "unp" - 这个文件名可能是某个程序或代码库的名称,很可能与Stevens的网络编程工作相关,它可能包含了一系列的源代码文件,用于演示和解释网络编程的各种概念和技术。 综合以上信息,这个压缩包对于想要深入学习...
17.2和17.3中提及的全局变量(如图17-2所示)维护了协议的状态和资源管理,例如`unp_deferred`用于无用单元的收集,`unp_gc_int`记录是否正在执行收集,`unp_ino_t`分配给新套接字的伪i_node号,以及缓冲区大小的...
第2章 链路层 15 2.1 引言 15 2.2 以太网和IEEE 802封装 15 2.3 尾部封装 17 2.4 SLIP:串行线路IP 17 2.5 压缩的SLIP 18 2.6 PPP:点对点协议 18 2.7 环回接口 20 2.8 最大传输单元MTU 21 2.9 路径MTU 21 2.10 串行...
W. Richard Stevens的原版代码,网络编程的经典巨著