《UNIX网络编程 卷1:套接字联网API》读书笔记(一):网络编程简介
概述要编写通过计算机网络通信的程序,首先要确定这些程序相互通信所用的协议。大多数网络是按照划分成客户和服务器来组织的。本章及后续章节的焦点是TCP/IP协议族,也可称为网际协议族。下图为客户与服务器使用TCP在同一个以太网中通信:图1.1 客户与服务器使用TCP在同一个以太网进行通信同一网络中的客户...
UNIX网络编程卷1 第一章 简介 读书笔记。
基本没讲什么,一点点计算机网络发展史,一点点socket()简单介绍,最重要的是1.3节协议无关性。协议无关性:贯穿整本书的一个重要特性,他主要强调的是 socket是网络协议无关的编程接口。socket给出一个struct sockaddr结构,每一种协议都有自己特定的地址结构来记录协议中需要的基...
UNIX网络编程 卷1 第三版 人邮版 环境搭建---unp.h
环境的搭建过程: 1、下载源码 随便google一下都能找到,也可以从官网下载http://unpbook.com/unpv13e.tar.gz 得到源码包:unpv13e.tar.gz 2、解压 tar -zxvf unpv13e.tar.gz 3、编译 cd unpv13e 阅读README 依...
UNIX网络编程卷1(第三版)关于源程序编译出错问题的详细解决方法
最近开始学习网络编程,由于有Linux基础,所以选择了 UNIX网络编程卷1第三版作为主要阅读书籍,按照书上建议开始调试源程序,发现编译出错,通过查找相关网络资源,总结如下解决方法与各位朋友分享! 环境说明(应该也适用于其他Linux版本): Linux系统: Ubuntu10....
UNIX网络编程卷1:套接字联网API-第2章:传输层 TCP/UDP和SCTP
1.OSI模型 OSI(open systems interconnection)计算机通信开放系统互连模型,是一个七层的理论模型(也就是说理论上分得很细致完善,但实际中设计实现中有出入) 实际过程中我们一般采用网际网协议族 物理层和数据链路层干的事情可以对应为网络硬件和设备驱动程序,如果不是要写...
UNIX网络编程卷1:套接字联网-第4章:基本TCP套接字编程1
还是那句话,我们要学会使用man查看 1.socket函数 根据指定的协议族、套接字类型和协议来分配一个套接口的描述符及其所用的资源,返回分配的套接字描述符 #include <sys/types.h> /* See NOTES */ #include <s...
Centos编译Unix网络编程(第三版)卷1的源代码
测试环境:Centos 1)在shell中输入./configure然后按回车(注意先让configure有执行权限 chomd 777 configure) 2)依次进入lib、libfree、libgai和libroute目录,执行make。有可能编译不错误(我在libroute目录中make...
UNIX网络编程卷1 服务器程序设计范式1 并发服务器,为每个客户请求fork一个进程
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.传统并发服务器调用 fork 派生一个子进程来处理每个客户2.传统并发服务器的问题在于为每个客户现场 fork 一个子进程比较耗费 CPU 时间。 /* include serv01 *...
UNIX网络编程卷1 服务器程序设计范式8 预先创建线程,由主线程调用accept
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.程序启动阶段创建一个线程池之后只让主线程调用 accept 并把客户连接传递给池中某个可用线程。 //用于维护关于每个线程基于信息的 Thread 结构typedef struct { ...
《Unix网络编程》卷1:套接字联网API(第3版):名字与地址互换、IPv4和IPv6互操作性
全书共31章+附录。 计划安排:吃透这本书,一天三章+源码,并实测代码做当天笔记,CSDN见。 时间安排:计划时间1.5个月 == 6个周末 == 12天。 2017.08.05 第01-03章:TCP/IP简介、传输层、套接字编程简介 2017.08.06 第04-06章:基本TCP...
《UNIX网络编程 卷1》 笔记:非阻塞式I/O
本节讨论非阻塞式I/O操作。默认的I/O操作如read或write等都是以阻塞的方式工作,比如read函数,如果没有数据可读取则进程一直阻塞直到有数据可读取。这种方式会带来某些问题。回到我们在I/O复用 select函数这一节实现的客户与服务器交互的str_cli函数,摘取其中处理标准输入的一段代码...
UNIX网络编程卷1(第三版)字节排序函数测试
内存中存储多字节有两种方法,即小端字节序和大端字节序,Ubuntu10.04是小端字节序,网际协议所用的字节序为大端字节序 内存地址增长方向: 低序字节->高序字节 小端字节序 高序字节->低序字节 大端字节序 主机和网络字节序转换函数在头...
《Unix网络编程》卷1:套接字联网API(第3版):简介、传输层、套接字编程
全书共31章+附录。 计划安排:吃透这本书,一天三章+源码,并实测代码做当天笔记,CSDN见。 时间安排:计划时间1.5个月 == 6个周末 == 12天。 2017.08.05 第01-03章: TCP/IP简介、传输层、套接字编程简介 2017.08.06 第04-06章:基本TCP...
UNIX网络编程卷1 服务器程序设计范式0 迭代服务器
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.迭代 TCP 服务器总是在完全处理某个客户的请求后才转向下一个客户。2.从进程控制角度看迭代服务器是最快的,因为它不执行进程控制。 /* include serv00 */#includ...
UNIX网络编程卷1 服务器程序设计范式7 预先创建线程,以互斥锁上锁方式保护accept
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.预先创建一个线程池,并让每个线程各自调用 accept2.用互斥锁取代让每个线程都阻塞在 accept 调用之中的做法 //用于维护关于每个线程基于信息的 Thread 结构typede...
《UNIX网络编程 卷1》 笔记:描述符传递技术
Linux提供了一种从一个进程向另一个进程传递任意打开的描述符的技术,这两个进程可以无亲缘关系。这种技术要求首先在这两个进程之间创建一个Unix域套接字,然后使用sendmsg跨套接字发送一个特殊的消息,这个消息由内核来处理,会把打开的描述符传递到接收进程。 先来看看要使用的数据结构和函数。 st...
UNIX网络编程卷2进程间通信读书笔记(二)—管道 (1)
一.管道 管道的名称很形象,它就像是一个水管,我们从一端到水然后水从令一端流出。不同的是这里说的管道的两边都是进程。从一端往管道里写数据,其它进程可以从管道的另一端的把数据读出,从而实现了进程间通信的功能。 管道是Linux支持的最初Unix IPC形式之一,具有以下特点...
UNIX网络编程卷1:套接字联网-第16章:非阻塞式I/O
1.可能阻塞的4类套接字调用: 1)输入操作,包括read,readv,recv,recvfrom,recvmsg。对于非阻塞的套接字,如果输入操作不能被满足(对于TCP套接字即至少有一个字节的数据可读,对于UDP套接字即有一个完整的数据报可读),相应调用将立即返回一个EWOULDBLO...
UNIX网络编程卷1 服务器程序设计范式4 预先派生子进程,以线程互斥锁上锁方式保护accept
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.文件上锁文件系统操作,比较耗时2.线程上锁,不仅适用于同一进程内各线程之间的上锁,也适用于不同进程之间的上锁。3.在不同进程之间使用线程上锁要求:1)互斥锁变量必须存放在由所有进程共享的...
UNIX网络编程卷1 服务器程序设计范式4 预先派生子进程,以线程互斥锁上锁方式保护accept
本文为senlie原创,转载请保留此地址:http://blog.csdn.net/zhengsenlie 1.文件上锁文件系统操作,比较耗时 2.线程上锁,不仅适用于同一进程内各线程之间的上锁,也适用于不同进程之间的上锁。 3.在不同进程之间使用线程上锁要求: 1)互斥锁变量必须存放在由所有进程...