java8 发表于 2024-2-9 16:54:38

Linux网络编程(第2版) PDF 电子书 X0153

Java电子书:Linux网络编程(第2版)    PDF 电子书 Java吧 java8.com

作者:宋敬彬出版社:清华大学出版社

编号:166-Java吧资源免费-X0153【Java吧 java8.com】



目录:
第1篇Linux网络开发基础第1章Linux作系统概述 21.1Linux发展 21.1.1Linux的诞生和发展 21.1.2Linux名称的由来 31.2Linux的发展要素 31.2.1UNIX作系统 31.2.2Minix作系统 41.2.3POSIX 标准 41.3Linux与UNIX的异同 51.4作系统类型选择和内核版本的选择 51.4.1常见的不同公司发行的Linux异同 51.4.2内核版本的选择 61.5Linux的系统架构 71.5.1Linux内核的主要模块 71.5.2Linux的文件结构 81.6GNU通用公共许可证 91.6.1GPL许可证的 91.6.2GPL的自由理念 101.6.3GPL的基本条款 111.6.4关于GPL许可证的争议 121.7Linux软件开发的可借鉴之处 121.8小结 13第2章Linux编程环境 142.1Linux环境下的编辑器 142.1.1Vim使用简介 142.1.2使用Vim建立文件 152.1.3使用Vim编辑文本 162.1.4Vim的格式设置 182.1.5Vim配置文件.vimrc 182.1.6使用其他编辑器 192.2Linux下的GCC编译器工具集 192.2.1GCC简介 192.2.2编译程序的基本知识 212.2.3单个文件编译成执行文件 212.2.4编译生成目标文件 222.2.5多文件编译 222.2.6预处理 242.2.7编译成汇编语言 242.2.8生成和使用静态库 252.2.9生成动态库 262.2.10动态加载库 292.2.11GCC常用选项 312.2.12编译环境的搭建 332.3Makefile文件简介 332.3.1个多文件的工程例子 332.3.2多文件工程的编译 352.3.3Makefile的规则 372.3.4Makefile中使用变量 392.3.5搜索路径 422.3.6自动推导规则 432.3.7递归make 442.3.8Makefile中的函数 462.4用GDB调试程序 472.4.1编译可调试程序 482.4.2使用GDB调试程序 492.4.3GDB常用命令 522.4.4其他的GDB 592.5小结 60第3章文件系统简介 613.1Linux下的文件系统 613.1.1Linux下文件的内涵 613.1.2文件系统的建 623.1.3挂接文件系统 653.1.4索引节点inode 653.1.5普通文件 663.1.6设备文件 663.1.7虚拟文件系统VFS 683.2文件的通用作方法 723.2.1文件描述符 723.2.2打开建文件open()函数、create()函数 733.2.3关闭文件close()函数 763.2.4读取文件read()函数 773.2.5写文件write()函数 793.2.6文件偏移lseek()函数 803.2.7获得文件状态fstat()函数 833.2.8文件空间映射mmap()函数 853.2.9文件属性fcntl()函数 883.2.10文件输入输出控制ioctl()函数 923.3socket文件类型 933.4小结 93第4章程序、进程和线程 944.1程序、进程和线程的概念 944.1.1程序和进程的差别 944.1.2Linux环境下的进程 954.1.3进程和线程 964.2进程产生的方式 964.2.1进程号 964.2.2进程复制fork()函数 974.2.3system()函数方式 984.2.4进程执行exec()函数系列 994.2.5所有用户态进程的产生进程init 1004.3进程间通信和同步 1014.3.1半双工管道 1014.3.2命名管道 1074.3.3消息队列 1084.3.4消息队列的个例子 1144.3.5信号量 1164.3.6共享内存 1214.3.7信号 1244.4Linux下的线程 1274.4.1多线程编程实例 1274.4.2Linux下线程建函数pthread_create() 1294.4.3线程的结束函数pthread_join()和函数pthread_exit() 1294.4.4线程的属性 1304.4.5线程间的互斥 1324.4.6线程中使用信号量 1334.5小结 136
第2篇Linux用户层网络编程第5章TCP/IP协议族简介 1385.1OSI网络分层介绍 1385.1.1OSI网络分层结构 1385.1.2OSI的7层网络结构 1395.1.3OSI参考模型中的数据传输 1405.2TCP/IP协议栈 1415.2.1TCP/IP协议栈参考模型 1415.2.2主机到网络层协议 1435.2.3IP协议 1445.2.4网际控制报文协议(ICMP) 1465.2.5传输控制协议(TCP) 1505.2.6用户数据报文协议(UDP) 1545.2.7地址解析协议(ARP) 1565.3IP地址分类与TCP/UDP端口 1585.3.1因网中IP地址的分类 1595.3.2子网掩码(subnet mask address) 1615.3.3IP地址的配置 1625.3.4端口 1635.4主机字节序和网络字节序 1635.4.1字节序的含义 1635.4.2网络字节序的转换 1645.5小结 166第6章应用层网络服务程序简介 1676.1HTTP协议和服务 1676.1.1HTTP协议概述 1676.1.2HTTP协议的基本过程 1686.2FTP协议和服务 1706.2.1FTP协议概述 1706.2.2FTP协议的工作模式 1726.2.3FTP协议的传输方式 1726.2.4个简单的FTP过程 1736.2.5常用的FTP工具 1736.3TELNET协议和服务 1736.3.1远程登录的基本概念 1746.3.2使用TELNET协议进行远程登录的工作过程 1746.3.3TELNET协议 174
6.4NFS协议和服务 1756.4.1安装NFS服务器和客户端 1756.4.2服务器端的设定 1766.4.3客户端的作 1766.4.4showmount命令 1776.5自定义网络服务 1776.5.1xinetd/inetd 1776.5.2xinetd服务配置 1786.5.3自定义网络服务 1796.6小结 180第7章TCP网络编程基础 1817.1套接字编程基础知识 1817.1.1套接字地址结构 1817.1.2用户层和内核层交互过程 1837.2TCP网络编程流程 1847.2.1TCP网络编程架构 1847.2.2建网络口函数socket() 1867.2.3绑定个地址端口对函数bind() 1897.2.4监听本地端口listen 1927.2.5接受个网络请求函数accept() 1947.2.6连接目标网络服务器函数connect() 1997.2.7写入数据函数write() 2007.2.8读取数据函数read() 2017.2.9关闭套接字函数 2027.3服务器/客户端的简单例子 2027.3.1例子功能描述 2027.3.2服务器网络程序 2027.3.3服务器读取和显示字符串 2057.3.4客户端的网络程序 2057.3.5客户端读取和显示字符串 2067.3.6编译运行程序 2067.4截取信号的例子 2077.4.1信号处理 2077.4.2信号SIGPIPE 2077.4.3信号SIGINT 2087.5小结 208第8章服务器和客户端信息的获取 2098.1字节序 2098.1.1大端字节序和小端字节序 2098.1.2字节序转换函数 2118.1.3个字节序转换的例子 2138.2字符串IP地址和二进制IP地址的转换 2168.2.1inet_xxx()函数 2168.2.2inet_pton()和inet_ntop()函数 2188.2.3使用8.2.1节地址转换函数的例子 2198.2.4使用函数inet_pton()和函数inet_ntop()的例子 2218.3套接字描述符判定函数issockettype() 2228.3.1进行文件描述符判定的函数issockettype() 2228.3.2main()函数 2238.4IP地址与域名之间的相互转换 2238.4.1DNS原理 2238.4.2获取主机信息的函数 2248.4.3使用主机名获取主机信息的例子 2278.4.4函数gethostbyname()不可重入的例子 2298.5协议名称处理函数 2308.5.1xxxprotoxxx()函数 2318.5.2使用协议族函数的例子 2328.6小结 235第9章数据的IO和复用 2369.1IO函数 2369.1.1使用recv()函数接收数据 2369.1.2使用send()函数发送数据 2389.1.3使用readv()函数接收数据 2399.1.4使用writev()函数发送数据 2399.1.5使用recvmsg()函数接收数据 2419.1.6使用sendmsg()函数发送数据 2439.1.7IO函数的比较 2459.2使用IO函数的例子 2459.2.1客户端处理框架的例子 2459.2.2服务器端程序框架 2479.2.3使用recv()和send()函数 2489.2.4使用readv()和write()函数 2509.2.5使用recvmsg()和sendmsg()函数 2529.3IO模型 2559.3.1阻塞IO模型 2559.3.2非阻塞IO模型 2559.3.3IO复用 2569.3.4信号驱动IO模型 2569.3.5异步IO模型 257
9.4select()函数和pselect()函数 2589.4.1select()函数 2589.4.2pselect()函数 2609.5poll()函数和ppoll()函数 2619.5.1poll()函数 2619.5.2ppoll()函数 2629.6非阻塞编程 2639.6.1非阻塞方式程序设计介绍 2639.6.2非阻塞程序设计的例子 2639.7小结 264第10章基于UDP协议的接收和发送 26510.1UDP编程框架 265 10.1.1UDP编程框图 265 10.1.2UDP服务器编程框架 267 10.1.3UDP客户端编程框架 26710.2UDP协议程序设计的常用函数 267 10.2.1建立套接字socket()和绑定套接字bind() 268 10.2.2接收数据recvfrom()/recv() 268 10.2.3发送数据sendto()/send() 27310.3UDP接收和发送数据的例子 277 10.3.1UDP服务器端 277 10.3.2UDP服务器端数据处理 278 10.3.3UDP客户端 279 10.3.4UDP客户端数据处理 279 10.3.5测试UDP程序 28010.4UDP协议程序设计中的几个问题 280 10.4.1UDP报文丢失数据 280 10.4.2UDP数据发送中的乱序 282 10.4.3UDP协议中的connect()函数 284 10.4.4UDP缺乏流量控制 285 10.4.5UDP协议中的外出网络接口 287 10.4.6UDP协议中的数据报文截断 28810.5小结 289第11章高级套接字 29011.1UNIX域函数 290 11.1.1UNIX域函数的地址结构 290 11.1.2套接字函数 291 11.1.3使用UNIX域函数进行套接字编程 291 11.1.4传递文件描述符 293 11.1.5socketpair()函数 294 11.1.6传递文件描述符的例子 29511.2广播 299 11.2.1广播的IP地址 300 11.2.2广播与单播的比较 300 11.2.3广播的示例 30111.3多播 307 11.3.1多播的概念 308 11.3.2广域网的多播 308 11.3.3多播的编程 308 11.3.4内核中的多播 310 11.3.5个多播例子的服务器端 313 11.3.6个多播例子的客户端 31511.4数据链路层访问 317 11.4.1SOCK_PACKET类型 317 11.4.2设置套接口以捕获链路帧的编程方法 317 11.4.3从套接口读取链路帧的编程方法 318 11.4.4定位IP头的编程方法 319 11.4.5定位TCP报头的编程方法 321 11.4.6定位UDP报头的编程方法 322 11.4.7定位应用层报文数据的编程方法 323 11.4.8使用SOCK_PACKET编写ARP请求程序的例子 32311.5小结 326第12章套接字选项 32812.1获取和设置套接字选项getsocketopt()/setsocketopt() 328 12.1.1getsockopt()函数和setsocketopt()函数的介绍 328 12.1.2套接字选项 329 12.1.3套接字选项简单示例 33012.2SOL_SOCKET协议族选项 334 12.2.1SO_BROADCAST广播选项 334 12.2.2SO_DEBUG调试选项 335 12.2.3SO_DONTROUTE不经过路由选项 335 12.2.4SO_ERROR错误选项 335 12.2.5SO_KEEPALIVE持连接选项 336 12.2.6SO_LINGER缓冲区处理方式选项 337 12.2.7SO_OOBINLINE带外数据处理方式选项 339 12.2.8SO_RCVBUF和SO_SNDBUF缓冲区大小选项 340 12.2.9SO_RCVLOWAT和SO_SNDLOWAT缓冲区下限选项 340 12.2.10SO_RCVTIMEO和SO_SNDTIMEO收发时选项 341 12.2.11SO_REUSERADDR地址重用选项 341 12.2.12SO_EXCLUSIVEADDRUSE端口占选项 342 12.2.13SO_TYPE套接字类型选项 342 12.2.14SO_BSDCOMPAT与BSD套接字兼容选项 342 12.2.15SO_BINDTODEVICE套接字网络接口绑定选项 343 12.2.16SO_PRIORITY套接字先级选项 34412.3IPPROTO_IP选项 344 12.3.1IP_HDRINCL选项 344 12.3.2IP_OPTNIOS选项 344 12.3.3IP_TOS选项 344 12.3.4IP_TTL选项 34512.4IPPROTO_TCP选项 345 12.4.1TCP_KEEPALIVE选项 345 12.4.2TCP_MAXRT选项 346 12.4.3TCP_MAXSEG选项 346 12.4.4TCP_NODELAY和TCP_CORK选项 34612.5使用套接字选项 348 12.5.1设置和获取缓冲区大小 348 12.5.2获取套接字类型的例子 353 12.5.3使用套接字选项的综合例子 35312.6ioctl()函数 358 12.6.1ioctl()函数的命令选项 358 12.6.2ioctl()函数的IO请求 360 12.6.3ioctl()函数的文件请求 362 12.6.4ioctl()函数的网络接口请求 362 12.6.5使用ioctl()函数对ARP高速缓存作 369 12.6.6使用ioctl()函数发送路由表请求 37112.7fcntl()函数 371 12.7.1fcntl()函数的选项 372 12.7.2使用fcntl()函数修改套接字非阻塞属性 372 12.7.3使用fcntl()函数设置信号属主 37212.8小结 373第13章原始套接字 37413.1概述 37413.2原始套接字的建 375 13.2.1SOCK_RAW选项 375 13.2.2IP_HDRINCL套接字选项 376 13.2.3不需要bind()函数 37613.3原始套接字发送报文 37613.4原始套接字接收报文 37713.5原始套接字报文处理时的结构 377 13.5.1IP头的结构 377 13.5.2ICMP头结构 378 13.5.3UDP头结构 381 13.5.4TCP头结构 38213.6ping的例子 384 13.6.1协议格式 384 13.6.2校验和函数 385 13.6.3设置ICMP发送报文的头 386 13.6.4剥离ICMP接受报文的头 387 13.6.5计算时间差 388 13.6.6发送报文 389 13.6.7接收报文 390 13.6.8主函数过程 391 13.6.9主函数main() 393 13.6.10编译测试 39613.7洪水攻击 39613.8ICMP洪水攻击 397 13.8.1ICMP洪水攻击的原理 397 13.8.2ICMP洪水攻击的例子 39713.9UDP洪水攻击 40113.10SYN洪水攻击 40513.10.1SYN洪水攻击的原理 40513.10.2SYN洪水攻击的例子 40513.11小结 409第14章服务器模型选择 41014.1循环服务器 410 14.1.1UDP循环服务器 410 14.1.2TCP循环服务器 41314.2简单并发服务器 415 14.2.1并发服务器的模型 416 14.2.2UDP并发服务器 416 14.2.3TCP并发服务器 41914.3TCP的高级并发服务器模型 421 14.3.1单客户端单进程,统accept() 422 14.3.2单客户端单线程,统accept() 425 14.3.3单客户端单线程,各线程自accept(),使用互斥锁 42714.4IO复用循环服务器 431 14.4.1IO复用循环服务器模型介绍 431 14.4.2IO复用循环服务器模型的例子 43214.5小结 436
第15章IPv6简介 43715.1IPv4的缺陷 43715.2IPv6的点 43815.3IPv6的地址 439 15.3.1IPv6的单播地址 439 15.3.2可聚集全球单播地址 439 15.3.3本地使用单播地址 440 15.3.4兼容性地址 441 15.3.5IPv6多播地址 441 15.3.6IPv6任播地址 442 15.3.7主机的多个IPv6地址 44215.4IPv6的头 443 15.4.1IPv6头格式 443 15.4.2与IPv4头的对比 444 15.4.3IPv6的TCP头 444 15.4.4IPv6的UDP头 444 15.4.5IPv6的ICMP头 44515.5IPv6运行环境 447 15.5.1加载IPv6模块 447 15.5.2查看是否支持IPv6 44715.6IPv6的结构定义 448 15.6.1IPv6的地址族和协议族 448 15.6.2套接字地址结构 448 15.6.3地址兼容考虑 450 15.6.4IPv6通用地址 45015.7IPv6的套接字函数 451 15.7.1socket()函数 451 15.7.2没有发生改变的函数 451 15.7.3发生改变的函数 45215.8IPv6的套接字选项 452 15.8.1IPv6的套接字选项 452 15.8.2单播跳限IPV6_UNICAST_HOPS 453 15.8.3发送和接收多播 454 15.8.4IPv6中获得时间戳的ioctl命令 45515.9IPv6的库函数 455 15.9.1地址转换函数的差异 455 15.9.2域名解析函数的差异 455 15.9.3测试宏 45815.10IPv6的编程的个简单例子 45815.10.1服务器程序 45815.10.2客户端程序 46015.10.3编译调试 46115.11小结 462 java8.com第3篇Linux内核网络编程第16章Linux内核中网络分结构以及分布 46416.1概述 464 16.1.1代码目录分布 464 16.1.2内核中网络分流程简介 466 16.1.3系统提供修改网络流程点 468 16.1.4sk_buff结构 469 16.1.5网络协议数据结构inet_protosw 471

百度云盘下载地址(完全免费-绝无套路):**** Hidden Message *****




狮泉河 发表于 2024-2-9 16:56:34

良心网站,力挺

晨曦中的白荷 发表于 2024-2-9 17:38:10

资源很新 好好好

快乐之英 发表于 2024-2-9 18:18:34

免费资源 真的无套路

为了你我愿意 发表于 2024-2-9 18:59:30

白漂来了

十三太爷 发表于 2024-2-9 19:40:43

免费资源 真的无套路

辉常开心 发表于 2024-2-9 20:22:38

免费资源 真的无套路

酸果 发表于 2024-2-9 21:03:39

不错,好资源

红色 发表于 2024-2-9 21:44:42

路过,收下了,不错的论坛

吹散的烟 发表于 2024-2-9 22:26:22

都是干货,谢谢啦
页: [1] 2
查看完整版本: Linux网络编程(第2版) PDF 电子书 X0153