10. 信号 第10章 信号 信号是由用户、系统或者进程发送给目标进程的信息,以通知目标进程某个状态的改变或系统异常。Linux信号可由如下条件产生: 对于前台进程,用户可以通过输入特殊的终端字符来给它发送信号。比如输入Ctrl+C通常会给进程发送一个中断信号。 系统异常。比如浮点异常和非法内存段访问。 系统状态变化。比如alarm定时器到期将引起SIGALRM信号。 运行kill命令或调用kil 2024-12-16 c++ > Linux高性能服务器-游双 #网络编程
9. I/O复用 第9章 I/O复用 I/O复用使得程序能同时监听多个文件描述符。网络程序在下列情况下需要使用I/O复用技术: ❑ 客户端程序要同时处理多个socket。比如本章将要讨论的非阻塞connect技术。 ❑ 客户端程序要同时处理用户输入和网络连接。比如本章将要讨论的聊天室程序。 ❑ TCP服务器要同时处理监听socket和连接socket。这是I/O复用使用最多的场合。 ❑ 服务器要同 2024-12-16 c++ > Linux高性能服务器-游双 #网络编程
8. 高性能服务器程序框架 第8章 高性能服务器程序框架 1. 服务器模型 1.1 C/S模型 TCP/IP协议在设计和实现上并没有客户端和服务器的概念,在通信过程中所有机器都是对等的。 但由于资源(视频、新闻、软件等)都被数据提供者所垄断,所以几乎所有的网络应用程序都很自然地采用了图8-1所示的C/S(客户端/服务器)模型: 所有客户端都通过访问服务器来获取所需的资源。 C/S模型的逻辑: 2024-12-16 c++ > Linux高性能服务器-游双 #网络编程
7. Linux服务器程序规范 第7章 Linux服务器程序规范 Linux服务器程序一般以后台进程形式运行。后台进程又称守护进程(daemon)。它没有控制终端,因而也不会意外接收到用户输入。守护进程的父进程通常是init进程(PID为1的进程)。 Linux服务器程序通常有一套日志系统,它至少能输出日志到文件,有的高级服务器还能输出日志到专门的UDP服务器。大部分后台进程都在/var/log目录下拥有自己的日志目录。 2024-12-16 c++ > Linux高性能服务器-游双 #网络编程
6. 高级I/O函数 第6章 高级I/O函数 本章将讨论其中和网络编程相关的几个,这些函数大致分为三类: 用于创建文件描述符的函数,包括pipe、dup/dup2函数。 用于读写数据的函数,包括readv/writev、sendfile、mmap/munmap、splice和tee函数。 用于控制I/O行为和属性的函数,包括fcntl函数。 1. pipe函数 pipe函数可用于创建一个管道,以实现 2024-12-16 c++ > Linux高性能服务器-游双 #网络编程
5. Linux网络编程基础API 第5章 Linux网络编程基础API 1. socket地址API 1.1 主机字节序和网络字节序 字节序分为大端字节序(big endian)和小端字节序(little endian)。 大端字节序是指一个整数的高位字节(23~31 bit)存储在内存的低地址处,低位字节(0~7 bit)存储在内存的高地址处。 小端字节序则是指整数的高位字节存储在内存的高地址处,而低位字节则存 2024-12-16 c++ > Linux高性能服务器-游双 #网络编程
4. TCP/IP通信案例:访问Internet上的Web服务器 第4章 TCP/IP通信案例:访问Internet上的Web服务器 1. 实例总图 我们按照如下方法来部署通信实例:在Kongming20上运行wget客户端程序,在ernest-laptop上运行squid代理服务器程序。客户端通过代理服务器的中转,获取Internet上的主机www.baidu.com的首页文档index.html,如图4-1所示。 由图4-1可见,wget客户端程 2024-12-16 c++ > Linux高性能服务器-游双 #网络编程
3. TCP协议详解 第3章 TCP协议详解 1. TCP服务的特点 传输层协议主要有两个:TCP协议和UDP协议。TCP协议相对于UDP协议的特点是:面向连接、字节流和可靠传输。 使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写。双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输。TCP连接是全双工的,即双方的数据读写可以通过一个连接进行。完成数据交换之后,通信双方都必须断开 2024-12-16 c++ > Linux高性能服务器-游双 #网络编程
2. IP协议详解 第2章 IP协议详解 1. IP服务的特点 IP协议是TCP/IP协议族的动力,它为上层协议提供无状态、无连接、不可靠的服务。 无状态(stateless)是指IP通信双方不同步传输数据的状态信息 因此所有IP数据报的发送、传输和接收都是相互独立、没有上下文关系的。 这种服务最大的缺点是无法处理乱序和重复的IP数据报。 虽然IP数据报头部提供了一个标识字段(见后文)用以唯一标识 2024-12-16 c++ > Linux高性能服务器-游双 #网络编程
1. TCP/IP协议族 第1章 TCP/IP协议族 1. TCP/IP协议族体系结构以及主要协议 TCP/IP协议族是一个四层协议系统,自底而上分别是数据链路层、网络层、传输层和应用层。每一层完成不同的功能,且通过若干协议来实现,上层协议使用下层协议提供的服务,如图1-1所示。 1.1 数据链路层 数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介(比如以太网、令牌环等)上的传输。不同的物理网络具 2024-12-16 c++ > Linux高性能服务器-游双 #网络编程