Linux网络编程视频教程:从TCP/IP到Socket,涵盖进程间通信和线程

5星 · 超过95%的资源 需积分: 50 246 下载量 70 浏览量 更新于2024-09-09 12 收藏 64B TXT 举报
"Linux网络编程视频教程,包括TCP/IP基础、socket编程、进程间通信和线程篇,共计41集。课程详细讲解了Linux网络编程的相关概念和技术,适合C++开发者学习提升网络编程技能。" 在《Linux网络编程》这个教程中,主要涵盖了以下几个重要的知识点: 1. **TCP/IP基础**: - 讲解了TCP/IP模型,包括ISO/OSI参考模型和四层模型。 - 探讨了网络通信的基本概念,如对等通信、封装、分用和端口。 - 深入讨论了最大传输单元(MTU)、以太网帧格式、ICMP、ARP和RARP。 - 阐述了TCP的特点、TCP报文格式,以及TCP连接的建立(三次握手)和终止(四次挥手)过程,重点讲解了TCP如何保证数据传输的可靠性。 2. **Socket编程**: - 介绍了socket的概念,IPv4套接口地址结构,网络字节序及字节序转换函数。 - 展示了TCP客户/服务器模型,使用socket、bind、listen、accept和connect等函数创建服务器。 - 讨论了TCP的滑动窗口协议、UDP的特点及其报文格式。 - 解决了TCP/IP协议中的粘包问题,提供了readn、writen等实用函数。 - 学习了不同的I/O模型,如阻塞I/O、非阻塞I/O、select、poll和epoll,并通过实例演示了如何使用它们改进客户端和服务器程序。 3. **进程间通信**: - 阐述了进程同步与互斥的重要性,以及死锁的概念。 - 介绍了System V IPC,包括信号量、消息队列和共享内存的使用,以及如何解决经典并发问题。 - 讨论了POSIX IPC,如POSIX消息队列和共享内存,以及如何利用它们实现更高级的并发控制。 4. **线程编程**: - 阐述了线程的概念,比较了不同线程模型(N:1、1:1和N:M)。 - 详细讲解了POSIX线程库,包括线程创建、属性、线程特定数据、信号量、互斥锁和条件变量的使用,以及如何构建线程池。 这个教程是针对C++开发者的,旨在帮助他们理解和掌握Linux环境下的网络编程,包括低级别的TCP/IP操作,高级的socket编程,以及多进程和多线程的并发控制。通过学习这个教程,开发者可以提升其在Linux系统上构建高效网络应用程序的能力。
2018-01-19 上传
教程非常不错,价值280元,绝对是干货 Linux网络编程(总共41集) 讲解Linux网络编程知识,分以下四个篇章。 Linux网络编程之TCP/IP基础篇 Linux网络编程之socket编程篇 Linux网络编程之进程间通信篇 Linux网络编程之线程篇 Linux网络编程之TCP/IP基础篇 01TCPIP基础(一) ISO/OSI参考模型 TCP/IP四层模型 基本概念(对等通信、封装、分用、端口) 02TCPIP基础(二) 最大传输单元(MTU)/路径MTU 以太网帧格式 IC MP ARP RARP 03TCPIP基础(三) IP数据报格式 网际校验和 路由 04TCPIP基础(四) TCP特点 TCP报文格式 连接建立三次握手 连接终止四次握手 TCP如何保证可靠性 05TCPIP基础(五) 滑动窗口协议 UDP特点 UDP报文格式 Linux网络编程之socket编程篇 06socket编程(一) 什么是socket IPv4套接口地址结构 网络字节序 字节序转换函数 地址转换函数 套接字类型 07socket编程(二) TCP客户/服务器模型 回射客户/服务器 socket、bind、listen、accept、connect 08socket编程(三) SO_REUSEADDR 处理多客户连接(process-per-conection) 点对点聊天程序实现 09socket编程(四) 流协议与粘包 粘包产生的原因 粘包处理方案 readn writen 回射客户/服务器 10socket编程(五) read、write与recv、send readline实现 用readline实现回射客户/服务器 getsockname、getpeername gethostname、gethostbyname、gethostbyaddr 11socket编程(六) TCP回射客户/服务器 TCP是个流协议 僵进程与SIGCHLD信号 12socket编程(七) TCP 11种状态 连接建立三次握手、连接终止四次握手 TIME_WAIT与SO_REUSEADDR SIGPIPE 13socket编程(八) 五种I/O模型 select 用select改进回射客户端程序 14socket编程(九) select 读、写、异常事件发生条件 用select改进回射服务器程序。 15socket编程(十) 用select改进第八章点对点聊天程序 16socket编程(十一) 套接字I/O超时设置方法 用select实现超时 read_timeout函数封装 write_timeout函数封装 accept_timeout函数封装 connect_timeout函数封装 17socket编程(十二) select限制 poll 18socket编程(十三) epoll使用 epoll与select、poll区别 epoll LT/ET模式 19socket编程(十四) UDP特点 UDP客户/服务基本模型 UDP回射客户/服务器 UDP注意点 20socket编程(十五) udp聊天室实现 21socket编程(十六) UNIX域协议特点 UNIX域地址结构 UNIX域字节流回射客户/服务 UNIX域套接字编程注意点 22socket编程(十七) socketpair sendmsg/recvmsg UNIX域套接字传递描述符字 Linux网络编程之进程间通信篇 23进程间通信介绍(一) 进程同步与进程互斥 进程间通信目的 进程间通信发展 进程间通信分类 进程间共享信息的三种方式 IPC对象的持续性 24进程间通信介绍(二) 死锁 信号量 PV原语 用PV原语解决司机与售票员问题 用PV原语解决民航售票问题 用PV原语解决汽车租赁问题 25System V消息队列(一) 消息队列 IPC对象数据结构 消息队列结构 消息队列在内核中的表示 消息队列函数 26System V消息队列(二) msgsnd函数 msgrcv函数 27System V消息队列(三) 消息队列实现回射客户/服务器 28共享内存介绍 共享内存 共享内存示意图 管道、消息队列与共享内存传递数据对比 mmap函数 munmap函数 msync函数 29System V共享内存 共享内存数据结构 共享内存函数 共享内存示例 30System V信号量(一) 信号量 信号量