科技
类型
可以朗读
语音朗读
302千字
字数
2024-04-01
发行日期
展开全部
主编推荐语
本书着重阐述基于龙芯平台(龙芯CPU和Loongnix操作系统)的网络程序开发。
内容简介
本书首先介绍龙芯平台下的C语言编译工具链,包括Loongnix操作系统的安装、Loongnix操作系统的基本使用方法、Loongnix操作系统中C语言的编程工具和代码管理工具Git;
然后介绍在龙芯平台上基于编译工具链编写网络程序的相关知识,包括网络程序的基本原理,套接字应用程序接口的基本使用方法,多线程、多进程和I/O复用网络程序的编程方法,原始套接字的编程方法;
最后通过一个综合性的网络软件项目案例,介绍使用Qt编写图形界面的网络程序的基本方法。
目录
- 版权信息
- 内容提要
- 前言
- 资源与支持
- 第1章 信创平台概述
- 1.1 信创CPU简介
- 1.1.1 龙芯CPU
- 1.1.2 其他信创CPU
- 1.2 Linux及信创操作系统
- 1.2.1 Linux操作系统简介
- 1.2.2 Linux与Windows的差异
- 1.2.3 常见的Linux发行版
- 1.2.4 信创操作系统
- 第2章 龙芯信创平台
- 2.1 龙芯桌面计算机硬件平台
- 2.2 Loongnix操作系统
- 2.3 Loongnix操作系统使用入门
- 2.3.1 常用命令
- 2.3.2 应用软件安装与卸载
- 2.3.3 Vim编辑器基本使用方法
- 第3章 信创平台C语言编程环境
- 3.1 GCC与GDB
- 3.1.1 编译的基本概念
- 3.1.2 编译应用程序
- 3.1.3 编译静态链接库
- 3.1.4 编译动态链接库
- 3.1.5 使用GDB调试代码
- 3.2 Makefile基础
- 3.2.1 Makefile基本语法
- 3.2.2 使用变量与模式匹配
- 3.2.3 在Makefile文件中指定搜索路径
- 3.2.4 Makefile文件中基本函数的使用
- 3.2.5 简单的Makefile模板
- 3.3 CMake基础
- 3.3.1 CMake基本语法
- 3.3.2 使用CMake编译应用程序
- 3.3.3 使用CMake编译动态链接库
- 3.4 使用VSCode开发C程序
- 3.4.1 VSCode常用插件及设置
- 3.4.2 在VSCode中应用Makefile编译代码
- 3.4.3 在VSCode中使用CMake编译代码
- 3.4.4 VSCode中调试C程序的基本方法
- 3.4.5 在VSCode中应用代码规范格式化工具
- 第4章 使用Git管理代码
- 4.1 Git概述
- 4.1.1 Git代码版本控制概述
- 4.1.2 集中式和分布式版本控制系统
- 4.1.3 Git的基本结构
- 4.2 Git基本操作
- 4.2.1 Git安装与初始设置
- 4.2.2 保存代码到Git仓库
- 4.2.3 Git的基本工作流程
- 4.3 Git分支
- 4.3.1 分支的创建与切换
- 4.3.2 切换分支的注意事项
- 4.3.3 分支合并
- 4.3.4 分支变基
- 4.4 Git远程仓库和远程分支
- 4.4.1 远程仓库账户创建及密钥配置
- 4.4.2 创建远程仓库
- 4.4.3 使用变基重做
- 4.4.4 代码管理工作流程
- 第5章 网络编程基础
- 5.1 网络程序及其基本要素
- 5.2 网络通信协议
- 5.2.1 分层模型
- 5.2.2 TCP/IP
- 5.3 网络通信地址
- 5.3.1 MAC地址
- 5.3.2 IP地址
- 5.4 应用标识
- 5.4.1 端口号
- 5.4.2 端口号分配及常用端口号
- 5.5 进程的网络地址
- 5.5.1 三元组(半相关)
- 5.5.2 五元组(全相关)
- 5.6 网络程序的基本模式
- 5.6.1 客户端/服务器模式
- 5.6.2 浏览器/服务器模式
- 5.6.3 两种模式的对比
- 第6章 套接字编程
- 6.1 套接字概述
- 6.1.1 应用程序接口
- 6.1.2 发展历程
- 6.1.3 套接字通信的基础流程
- 6.2 编写“hello,world!”通信服务器程序
- 6.2.1 查询函数文档
- 6.2.2 创建套接字
- 6.2.3 绑定地址信息
- 6.2.4 建立套接字连接
- 6.2.5 发送消息
- 6.2.6 关闭套接字
- 6.3 编写“hello,world!”通信客户端程序
- 6.3.1 发送连接请求
- 6.3.2 接收消息
- 6.4 运行“hello,world!”程序
- 6.5 完善“hello,world!”程序
- 6.5.1 通过命令行输入服务器信息
- 6.5.2 优化错误处理
- 6.5.3 通过设置套接字选项解除地址被使用
- 6.5.4 循环实现服务器功能
- 6.5.5 使用shutdown()函数关闭套接字
- 6.5.6 使用多文件实现检错代码
- 6.6 编写TCP“回声”程序
- 6.6.1 “回声”的逻辑与实现
- 6.6.2 “回声”程序中的隐患——“粘包”
- 6.6.3 基于TCP的应用层协议设计
- 6.7 编写UDP“回声”程序
- 6.7.1 sendto()函数和recvfrom()函数
- 6.7.2 实现UDP的“回声”程序
- 6.7.3 UDP通信使用connect()函数注册地址信息
- 第7章 多线程网络程序
- 7.1 线程概述
- 7.1.1 操作系统、进程和线程之间的关系
- 7.1.2 进程和线程之间的关系
- 7.2 线程的创建与销毁
- 7.2.1 线程创建函数
- 7.2.2 线程销毁函数
- 7.3 线程同步方法
- 7.3.1 多线程同步问题
- 7.3.2 使用互斥量实现线程同步
- 7.3.3 使用信号量实现线程同步
- 7.4 编写多线程聊天室程序
- 7.4.1 使用多线程实现服务器的并发
- 7.4.2 实现转发消息到所有客户端
- 7.4.3 断开与对应客户端的连接
- 7.4.4 正确实现线程同步
- 7.4.5 实现聊天室客户端程序
- 7.4.6 代码优化
- 第8章 多进程网络程序
- 8.1 进程概述
- 8.1.1 进程ID
- 8.1.2 父进程和子进程
- 8.2 进程的创建与销毁
- 8.2.1 创建进程
- 8.2.2 销毁进程
- 8.2.3 进程退出
- 8.2.4 “僵尸”进程
- 8.2.5 使用异步方式销毁“僵尸”进程
- 8.3 多进程“回声”程序实现
- 8.3.1 服务器多进程的实现
- 8.3.2 “僵尸”进程的处理方法
- 8.3.3 使用多进程实现客户端的读、写功能分离
- 8.4 使用管道实现进程间通信
- 8.4.1 管道的使用方法
- 8.4.2 管道通信应用到多进程网络程序中
- 第9章 I/O复用套接字编程
- 9.1 I/O复用概述
- 9.2 使用select()函数实现I/O复用
- 9.2.1 select()函数
- 9.2.2 文件集合的基本操作函数
- 9.2.3 select()函数调用流程
- 9.3 使用select()函数实现服务器并发
- 9.3.1 使用select()函数监听套接字
- 9.3.2 使用select()函数监听通信套接字
- 9.3.3 并发服务器代码执行情况
- 9.4 epoll基本使用方法
- 9.4.1 epoll与select()函数的差异
- 9.4.2 epoll的基本操作函数
- 9.5 使用epoll实现并发服务器
- 9.5.1 使用epoll处理监听套接字
- 9.5.2 使用epoll处理通信套接字
- 9.6 epoll的边缘触发与条件触发
- 9.6.1 边缘触发与条件触发的概念
- 9.6.2 边缘触发下的数据读、写方法
- 9.6.3 3种并发实现方法的简单比较
- 第10章 套接字编程补充
- 10.1 域名与IP地址
- 10.1.1 域名与DNS
- 10.1.2 ICP备案
- 10.1.3 编程中域名与IP地址的转换
- 10.2 其他I/O函数
- 10.2.1 recv()与send()函数
- 10.2.2 发送与接收带外数据
- 10.2.3 writev()与readv()函数
- 10.3 多播与广播的实现
- 10.3.1 多播与广播的概念
- 10.3.2 多播数据发送与接收
- 10.3.3 广播数据发送与接收
- 第11章 原始套接字
- 11.1 原始套接字概述
- 11.2 原始套接字编程简介
- 11.2.1 原始套接字创建
- 11.2.2 原始套接字发送与接收数据包
- 11.2.3 原始套接字涉及的数据包结构
- 11.3 链路层原始套接字
- 11.3.1 链路层原始套接字的发送流程
- 11.3.2 ARP数据包发送样例
- 11.3.3 链路层原始套接字的接收流程
- 11.3.4 链路层原始套接字抓包程序样例
- 11.4 网络层原始套接字
- 11.4.1 网络层原始套接字的发送流程
- 11.4.2 使用ping工具发送ICMP数据包样例
- 11.4.3 网络层原始套接字的接收流程
- 11.4.4 使用ping工具接收ICMP数据包样例
- 11.5 pcap简介
- 11.5.1 pcap概述
- 11.5.2 pcap抓包流程
- 11.5.3 设置过滤条件
- 11.5.4 pcap抓包样例
- 第12章 综合运用案例
- 12.1 实现简单的Web服务器
- 12.1.1 多线程Web服务器实现
- 12.1.2 HTTP简介
- 12.1.3 HTTP请求和响应报文结构
- 12.1.4 HTTP请求处理和返回HTTP响应
- 12.2 实现远程过程调用
- 12.2.1 远程过程调用简介
- 12.2.2 远程接口调用协议设计
- 12.2.3 远程调用服务实现
- 12.2.4 远程壳函数库的实现
- 12.3 使用Qt实现网络程序
- 12.3.1 Qt编程环境的安装及设置
- 12.3.2 面向对象编程与Qt中的信号与槽机制
- 12.3.3 基于对话框的Qt图形界面实现
- 12.3.4 QSocket相关类的使用方法
- 12.3.5 用Qt实现简单聊天室客户端
- 12.3.6 实现简单聊天室服务器
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。