展开全部

主编推荐语

本书着重阐述基于龙芯平台(龙芯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日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。