Linux网络
文章平均质量分 90
Yuzuriha Inori
美好的一天从不会写简单题开始.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Linux网络】UDP协议详解:透过源码看透“面向数据报”与“缓冲区”的本质
本文介绍了传输层协议UDP的特点和工作原理。UDP是一种无连接、不可靠的协议,采用面向数据报的传输方式,发送方交付多少数据就发送多少数据,不会进行报文融合或拆分。文章详细解析了UDP报文格式(8字节报头+有效载荷)和校验机制,并指出UDP没有发送缓冲区,只有接收缓冲区。通过struct sk_buff结构体说明了操作系统如何管理网络报文。最后提到UDP报文最大长度为64KB的局限性,建议大数据传输时应在应用层手动分包处理。原创 2025-12-17 17:39:58 · 1197 阅读 · 48 评论 -
【Linux 网络】理解并应用应用层协议:HTTP(附简单HTTP服务器C++代码)
本文介绍了HTTP协议的基本概念及其实现要点。HTTP是应用层协议,采用请求-响应模型,具有无连接、无状态特性。文章详细讲解了HTTP请求/响应格式、URL结构、状态码和重定向机制,并提供了HTTP服务器的模拟实现代码。代码实现部分重点说明了反序列化请求获取URI、合成资源路径、序列化响应以及处理不同类型资源的关键要点,特别强调了二进制读取方式的重要性。最后指出当资源不存在时应构建404页面响应。原创 2025-12-14 11:14:17 · 1369 阅读 · 45 评论 -
【Linux网络】深入理解守护进程(Daemon)及其实现原理
本文介绍了Linux系统中的进程组、会话和控制终端概念,重点讲解了守护进程的实现方法。进程组是由一个或多个进程组成的集合,进程组生命周期独立于组长进程。会话则是多个进程组的集合,每个会话最多有一个控制终端。守护进程通过创建新会话脱离原终端,实现长期稳定运行。具体实现步骤包括:忽略挂断信号、fork子进程退出父进程、调用setsid创建新会话、更改工作目录、重定向标准输入输出等。文章还提供了守护进程化的代码实现,并说明系统库中已提供daemon()函数实现相同功能。原创 2025-12-11 16:40:34 · 1289 阅读 · 44 评论 -
【Linux 网络】基于TCP的Socket编程:通过协议定制,实现网络计算器
本文介绍了基于TCP的Socket编程进阶实现,重点讲解了协议定制和网络计算器的实现。主要内容包括: Socket封装:采用模板方法模式对Socket接口进行封装,实现TCP套接字的基本功能。 协议定制: 使用JsonCpp库实现序列化和反序列化 设计编码规则解决TCP粘包问题(报文长度+\r\n+报文+\r\n) 网络计算器实现: 定义Request和Respond类处理运算式和结果 通过Protocol类实现编码解码 计算模块完成基本运算功能 完整实现:服务器端采用多进程模型,客户端通过协议与服务器交互原创 2025-12-07 23:07:54 · 1291 阅读 · 43 评论 -
【Linux 网络】TCP Socket 编程实战:手把手实现远程命令执行(附实操要点 + 完整代码)
本文介绍了基于TCP的Socket编程实现,详细讲解了TCP接口的使用方法。主要内容包括:1) TCP核心接口如socket()、bind()、listen()、accept()等的功能和使用说明;2) 实现简单的客户端/服务端通信示例代码;3) 将单进程服务器改进为多线程版本,支持并发处理多个客户端请求;4) 通过popen()函数实现远程命令执行模块,增强服务器功能;5) 完整代码展示了日志系统、线程安全、网络地址转换等关键实现细节。相比UDP,TCP编程需要更多关注连接管理和流式传输特性,本文通过详细原创 2025-12-01 12:09:15 · 697 阅读 · 47 评论 -
【Linux网络】基于UDP的Socket编程,实现简单聊天室
本文介绍了基于UDP协议实现的简单聊天室程序。客户端通过sendto发送消息,recvfrom接收消息,并使用多线程实现并行收发。服务器端通过recvfrom接收消息,使用vector维护在线用户列表,并通过线程池将消息转发给所有在线用户。主要实现了登录识别、消息转发和退出处理功能,其中首次发送消息视为登录,"QUIT"消息触发退出。文章详细阐述了客户端和服务器的实现思路,并提供了关键代码模块,包括UDP套接字创建、消息收发、在线用户管理以及线程池优化等内容。最后还对IP地址和端口号转换原创 2025-11-12 16:05:41 · 1262 阅读 · 56 评论 -
【Linux网络】Socket编程实战,基于UDP协议的Dict Server
本文介绍了一个基于UDP协议的Socket编程实现,通过添加翻译模块扩展了原有的EchoServer功能。系统使用C++开发,包含客户端和服务端两部分:客户端发送英文单词到服务端,服务端通过预定义的字典文件(Dict.txt)进行单词翻译并返回结果。翻译模块采用哈希表存储单词映射,实现了高效的查询功能。服务端通过回调函数调用翻译功能,并使用日志模块记录运行状态。该系统展示了网络编程与业务逻辑模块的解耦设计,同时提供了完整的代码实现,可作为网络编程和模块化设计的实践参考。原创 2025-11-10 11:26:29 · 427 阅读 · 53 评论 -
【Linux网络】Socket编程实战,基于UDP协议的Echo Server
本文详细介绍了基于UDP协议的Socket编程实现EchoServer服务。主要内容包括: 服务器端实现分为初始化阶段(创建套接字、绑定信息)和运行阶段(接收并回显消息) 详细讲解了socket()、bind()、recvfrom()、sendto()等关键系统调用的使用 完整实现了UDP服务器类,包含日志模块和互斥锁封装 客户端实现注意事项,包括端口自动绑定机制 优化方案:服务器使用INADDR_ANY绑定任意地址,增加回调函数处理消息 提供了完整的代码实现,包括服务器和客户端的通信示例 该实现展示了基本原创 2025-10-30 10:25:34 · 1090 阅读 · 63 评论 -
【Linux网络】套接字Socket编程预备
本文介绍了Socket编程的基本概念和接口。首先阐述了网络通信的本质是进程间通信,通过IP地址+端口号可以唯一标识目标进程。接着讲解了端口号的作用和范围划分,以及TCP/UDP协议的特点区别。文章重点介绍了网络字节序的概念和相关转换函数,并详细说明了Socket编程的核心接口函数及其参数结构体sockaddr的设计原理。最后指出sockaddr通过类继承方式实现了对网络通信和本地通信的兼容支持。这些知识为后续实现服务器与客户端通信奠定了基础。原创 2025-10-24 16:47:15 · 793 阅读 · 60 评论 -
【Linux网络】初识网络,网络的基础概念
本文介绍了计算机网络的基础知识,包括网络发展历史、协议概念和分层架构。网络从最初的局域网逐渐发展为广域网,最终形成全球互联的互联网。协议是通信双方必须遵守的约定,由国际组织如ISO、IETF等制定标准。重点讲解了OSI七层模型和实际应用的TCP/IP五层(或四层)协议栈,包括物理层、数据链路层、网络层、传输层和应用层的功能。通过局域网和跨网络传输流程,解释了MAC地址和IP地址的作用差异,以及数据封装解包的过程。最后说明了路由器在跨网络通信中的关键作用,实现不同网络间的数据转发。原创 2025-10-17 14:44:16 · 3572 阅读 · 62 评论
分享