舉報

會員
Linux C/C++服務器開發實踐
最新章節:
12.8.5 游戲算法
本書較為全面地介紹了基于Linux網絡編程的基礎知識和編程技術,章節安排貼近企業項目需求,對基于LinuxC/C++語言的多線程編程和Linux操作系統支持的網絡庫函數等進行講解,由易到難,逐層遞進。本書共分12章,內容包括網絡概述、網絡基礎概念、套接字、TCP編程、UDP編程、原始套接字編程、網絡I/O模型、服務器設計,以及四大綜合實踐項目(HTTP服務器、FTP服務器、并發聊天服務器與C/S和P2P聯合架構的并發游戲服務器),通過項目練習幫助讀者鞏固所學的編程技術。
- 12.8.5 游戲算法 更新時間:2023-08-31 19:55:41
- 12.8.4 消息機制
- 12.8.3 游戲模式類CGame
- 12.8.2 棋盤類CTable
- 12.8.1 五子棋簡介
- 12.8 客戶端詳細設計和實現
- 12.7 服務器端詳細設計和實現
- 12.6 數據庫設計
- 12.5.3 協議包設計
- 12.5.2 傳輸層協議的選擇
- 12.5.1 服務器系統架構模型
- 12.5 總體設計
- 12.4.2 時間同步
- 12.4.1 事件一致性
- 12.4 網絡游戲的同步機制
- 12.3 P2P網絡游戲技術分析
- 12.2.3 P2P結構
- 12.2.2 游戲大廳代理結構
- 12.2.1 C/S結構
- 12.2 現有網絡游戲服務器結構
- 12.1 網絡游戲服務器發展現狀
- 第12章 C/S和P2P聯合架構的游戲服務器
- 11.6.6 客戶端設計
- 11.6.5 服務器端設計
- 11.6.4 聊天系統數據庫設計
- 11.6.3 Linux下的MySQL的C編程
- 11.6.2 準備MySQL環境
- 11.6.1 數據庫的選擇
- 11.6 數據庫設計
- 11.5.5 客戶端多線程
- 11.5.4 服務器端多線程
- 11.5.3 客戶端功能
- 11.5.2 服務器端功能
- 11.5.1 模塊劃分
- 11.5 功能模塊劃分
- 11.4.3 IM的通信方式
- 11.4.2 IM的基本技術原理
- 11.4.1 IM的工作方式
- 11.4 即時通信系統的實施原理
- 11.3 系統總體設計
- 11.2.6 即時消息的通信需求
- 11.2.5 即時消息的注冊需求
- 11.2.4 即時消息的加密和鑒別
- 11.2.3 即時消息的安全需求
- 11.2.2 即時消息的協議需求
- 11.2.1 即時消息的一般需求
- 11.2 系統需求分析
- 11.1.3 數據庫系統的選擇
- 11.1.2 C/S模式介紹
- 11.1.1 應用系統平臺模式的選擇
- 11.1 系統平臺的選擇
- 第11章 并發聊天服務器
- 10.6.7 運行結果
- 10.6.6 實現登錄后的操作界面
- 10.6.5 實現登錄界面
- 10.6.4 實現主界面
- 10.6.3 客戶端工作流程設計
- 10.6.2 概要設計
- 10.6.1 客戶端需求分析
- 10.6 開發FTP客戶端
- 10.5 開發FTP服務器
- 10.4.5 FTP應答碼
- 10.4.4 FTP命令
- 10.4.3 FTP的工作方式
- 10.4.2 FTP的傳輸方式
- 10.4.1 FTP的工作原理
- 10.4 FTP概述
- 10.3 下載和編譯Libevent
- 10.2 使用Libevnet的基本流程
- 10.1.3 Reactor事件處理流程
- 10.1.2 Reactor模式的框架
- 10.1.1 Reactor模式的優點
- 10.1 Reactor模式
- 第10章 基于Libevent的FTP服務器
- 9.10.4 工程實現
- 9.10.3 主要功能函數
- 9.10.2 程序工作流程
- 9.10.1 邏輯架構
- 9.10 實現HTTP服務器
- 9.9 HTTP狀態碼分類
- 9.8 HTTP狀態碼
- 9.7 服務器響應消息
- 9.6 客戶端請求消息
- 9.5 HTTP的消息結構
- 9.4 HTTP的特點
- 9.3 HTTP的工作原理
- 9.2 架設Web服務器Apache
- 9.1 CGI程序的工作方式
- 第9章 HTTP服務器編程
- 8.5.2 圖形化版本
- 8.5.1 命令行版本
- 8.5 Iperf在Windows下的使用
- 8.4.2 Iperf的簡單使用
- 8.4.1 在Linux下安裝Iperf
- 8.4 Iperf在Linux下的使用
- 8.3 Iperf的主要功能
- 8.2 Iperf的工作原理
- 8.1 Iperf的特點
- 第8章 網絡性能工具Iperf
- 7.5.4 基于epoll的服務器
- 7.5.3 基于poll的服務器
- 7.5.2 基于select的服務器
- 7.5.1 使用場景
- 7.5 I/O多路復用的服務器
- 7.4 多線程并發服務器
- 7.3 多進程并發服務器
- 7.2.2 TCP循環服務器
- 7.2.1 UDP循環服務器
- 7.2 (分時)循環服務器
- 7.1.11 五種I/O模型比較
- 7.1.10 異步I/O模型
- 7.1.9 (同步)信號驅動式I/O模型
- 7.1.8 (同步)I/O多路復用模型
- 7.1.7 (同步)非阻塞式I/O模型
- 7.1.6 (同步)阻塞I/O模型
- 7.1.5 采用socket I/O模型的原因
- 7.1.4 同步與異步和阻塞與非阻塞的關系
- 7.1.3 阻塞和非阻塞
- 7.1.2 同步和異步
- 7.1.1 基本概念
- 7.1 I/O模型
- 第7章 服務器模型設計
- 6.5 PF_PACKET方式捕獲報文
- 6.4 AF_INET方式捕獲報文
- 6.3.3 發送函數sendto
- 6.3.2 接收函數recvfrom
- 6.3.1 創建原始套接字函數socket
- 6.3 原始套接字的基本編程步驟
- 6.2 創建原始套接字的方式
- 6.1 原始套接字的強大功能
- 第6章 原始套接字編程
- 5.4 UDP丟包及無序問題
- 5.3 實戰UDP套接字
- 5.2.2 recvfrom函數
- 5.2.1 sendto函數
- 5.2 UDP套接字編程的相關函數
- 5.1 UDP套接字編程的基本步驟
- 第5章 UDP服務器編程
- 4.13.4 設置套接字選項
- 4.13.3 獲取套接字選項
- 4.13.2 選項的級別
- 4.13.1 基本概念
- 4.13 套接字選項
- 4.12 I/O控制命令
- 4.11.6 多次請求響應的數據接收
- 4.11.5 一次請求響應的數據接收
- 4.11.4 數據接收時的情形
- 4.11.3 數據發送的六種情形
- 4.11.2 TCP數據傳輸的特點
- 4.11.1 數據發送和接收涉及的緩沖區
- 4.11 深入理解TCP編程
- 4.10 簡單的TCP套接字編程
- 4.9.9 close函數
- 4.9.8 recv函數
- 4.9.7 send函數
- 4.9.6 connect函數
- 4.9.5 accept函數
- 4.9.4 listen函數
- 4.9.3 bind函數
- 4.9.2 socket函數
- 4.9.1 BSD socket的頭文件
- 4.9 TCP套接字編程的相關函數
- 4.8 TCP套接字編程的基本步驟
- 4.7 協議族和地址族
- 4.6 主機字節序和網絡字節序
- 4.5.3 獲取套接字地址
- 4.5.2 專用socket地址
- 4.5.1 通用socket地址
- 4.5 套接字地址
- 4.4 套接字的類型
- 4.3 IP地址的格式轉換
- 4.2 網絡程序的架構
- 4.1 套接字的基本概念
- 第4章 TCP服務器編程
- 3.8.4 基于C++11實現線程池
- 3.8.3 基于POSIX實現線程池
- 3.8.2 使用線程池的原因
- 3.8.1 線程池的定義
- 3.8 線程池
- 3.7.2 定時互斥鎖std::time_mutex
- 3.7.1 基本互斥鎖std::mutex
- 3.7 C++11/14中的線程同步
- 3.6.3 條件變量
- 3.6.2 讀寫鎖
- 3.6.1 互斥鎖
- 3.6 基于POSIX進行線程同步
- 3.5.2 臨界資源和臨界區
- 3.5.1 同步的基本概念
- 3.5 線程同步
- 3.4.3 當前線程this_thread
- 3.4.2 線程的標識符
- 3.4.1 線程的創建
- 3.4 C++11中的線程類
- 3.3.4 線程退出時的清理機會
- 3.3.3 線程的結束
- 3.3.2 線程的屬性
- 3.3.1 線程的創建
- 3.3 利用POSIX多線程API函數進行多線程開發
- 3.2.6 C++多線程開發的兩種方式
- 3.2.5 線程標識
- 3.2.4 線程函數
- 3.2.3 線程的狀態
- 3.2.2 線程的基本概念
- 3.2.1 操作系統和多線程
- 3.2 多線程編程的基本概念
- 3.1 使用多線程的好處
- 第3章 多線程基本編程
- 2.3.2 Windows下集成式的Linux C/C++開發環境
- 2.3.1 Windows下非集成式的Linux C/C++開發環境
- 2.3 搭建Windows下Linux C/C++開發環境
- 2.2 搭建Linux下C/C++開發環境
- 2.1.8 和虛擬機互傳文件
- 2.1.7 連接虛擬機Linux
- 2.1.6 拍攝快照
- 2.1.5 啟用SSH
- 2.1.4 安裝網絡工具包
- 2.1.3 關閉防火墻
- 2.1.2 開啟root賬戶
- 2.1.1 在VMware下安裝Linux
- 2.1 準備虛擬機環境
- 第2章 搭建Linux開發環境
- 1.5.2 數據鏈路層主要功能
- 1.5.1 數據鏈路層的基本概念
- 1.5 數據鏈路層
- 1.4.4 ICMP協議
- 1.4.3 RARP協議
- 1.4.2 ARP協議
- 1.4.1 IP協議
- 1.4 網絡層
- 1.3.2 UDP協議
- 1.3.1 TCP協議
- 1.3 傳輸層
- 1.2.2 端口
- 1.2.1 DNS
- 1.2 應用層
- 1.1 TCP/IP協議的分層結構
- 第1章 TCP/IP基礎
- 前言
- 內容簡介
- 版權信息
- 封面
- 封面
- 版權信息
- 內容簡介
- 前言
- 第1章 TCP/IP基礎
- 1.1 TCP/IP協議的分層結構
- 1.2 應用層
- 1.2.1 DNS
- 1.2.2 端口
- 1.3 傳輸層
- 1.3.1 TCP協議
- 1.3.2 UDP協議
- 1.4 網絡層
- 1.4.1 IP協議
- 1.4.2 ARP協議
- 1.4.3 RARP協議
- 1.4.4 ICMP協議
- 1.5 數據鏈路層
- 1.5.1 數據鏈路層的基本概念
- 1.5.2 數據鏈路層主要功能
- 第2章 搭建Linux開發環境
- 2.1 準備虛擬機環境
- 2.1.1 在VMware下安裝Linux
- 2.1.2 開啟root賬戶
- 2.1.3 關閉防火墻
- 2.1.4 安裝網絡工具包
- 2.1.5 啟用SSH
- 2.1.6 拍攝快照
- 2.1.7 連接虛擬機Linux
- 2.1.8 和虛擬機互傳文件
- 2.2 搭建Linux下C/C++開發環境
- 2.3 搭建Windows下Linux C/C++開發環境
- 2.3.1 Windows下非集成式的Linux C/C++開發環境
- 2.3.2 Windows下集成式的Linux C/C++開發環境
- 第3章 多線程基本編程
- 3.1 使用多線程的好處
- 3.2 多線程編程的基本概念
- 3.2.1 操作系統和多線程
- 3.2.2 線程的基本概念
- 3.2.3 線程的狀態
- 3.2.4 線程函數
- 3.2.5 線程標識
- 3.2.6 C++多線程開發的兩種方式
- 3.3 利用POSIX多線程API函數進行多線程開發
- 3.3.1 線程的創建
- 3.3.2 線程的屬性
- 3.3.3 線程的結束
- 3.3.4 線程退出時的清理機會
- 3.4 C++11中的線程類
- 3.4.1 線程的創建
- 3.4.2 線程的標識符
- 3.4.3 當前線程this_thread
- 3.5 線程同步
- 3.5.1 同步的基本概念
- 3.5.2 臨界資源和臨界區
- 3.6 基于POSIX進行線程同步
- 3.6.1 互斥鎖
- 3.6.2 讀寫鎖
- 3.6.3 條件變量
- 3.7 C++11/14中的線程同步
- 3.7.1 基本互斥鎖std::mutex
- 3.7.2 定時互斥鎖std::time_mutex
- 3.8 線程池
- 3.8.1 線程池的定義
- 3.8.2 使用線程池的原因
- 3.8.3 基于POSIX實現線程池
- 3.8.4 基于C++11實現線程池
- 第4章 TCP服務器編程
- 4.1 套接字的基本概念
- 4.2 網絡程序的架構
- 4.3 IP地址的格式轉換
- 4.4 套接字的類型
- 4.5 套接字地址
- 4.5.1 通用socket地址
- 4.5.2 專用socket地址
- 4.5.3 獲取套接字地址
- 4.6 主機字節序和網絡字節序
- 4.7 協議族和地址族
- 4.8 TCP套接字編程的基本步驟
- 4.9 TCP套接字編程的相關函數
- 4.9.1 BSD socket的頭文件
- 4.9.2 socket函數
- 4.9.3 bind函數
- 4.9.4 listen函數
- 4.9.5 accept函數
- 4.9.6 connect函數
- 4.9.7 send函數
- 4.9.8 recv函數
- 4.9.9 close函數
- 4.10 簡單的TCP套接字編程
- 4.11 深入理解TCP編程
- 4.11.1 數據發送和接收涉及的緩沖區
- 4.11.2 TCP數據傳輸的特點
- 4.11.3 數據發送的六種情形
- 4.11.4 數據接收時的情形
- 4.11.5 一次請求響應的數據接收
- 4.11.6 多次請求響應的數據接收
- 4.12 I/O控制命令
- 4.13 套接字選項
- 4.13.1 基本概念
- 4.13.2 選項的級別
- 4.13.3 獲取套接字選項
- 4.13.4 設置套接字選項
- 第5章 UDP服務器編程
- 5.1 UDP套接字編程的基本步驟
- 5.2 UDP套接字編程的相關函數
- 5.2.1 sendto函數
- 5.2.2 recvfrom函數
- 5.3 實戰UDP套接字
- 5.4 UDP丟包及無序問題
- 第6章 原始套接字編程
- 6.1 原始套接字的強大功能
- 6.2 創建原始套接字的方式
- 6.3 原始套接字的基本編程步驟
- 6.3.1 創建原始套接字函數socket
- 6.3.2 接收函數recvfrom
- 6.3.3 發送函數sendto
- 6.4 AF_INET方式捕獲報文
- 6.5 PF_PACKET方式捕獲報文
- 第7章 服務器模型設計
- 7.1 I/O模型
- 7.1.1 基本概念
- 7.1.2 同步和異步
- 7.1.3 阻塞和非阻塞
- 7.1.4 同步與異步和阻塞與非阻塞的關系
- 7.1.5 采用socket I/O模型的原因
- 7.1.6 (同步)阻塞I/O模型
- 7.1.7 (同步)非阻塞式I/O模型
- 7.1.8 (同步)I/O多路復用模型
- 7.1.9 (同步)信號驅動式I/O模型
- 7.1.10 異步I/O模型
- 7.1.11 五種I/O模型比較
- 7.2 (分時)循環服務器
- 7.2.1 UDP循環服務器
- 7.2.2 TCP循環服務器
- 7.3 多進程并發服務器
- 7.4 多線程并發服務器
- 7.5 I/O多路復用的服務器
- 7.5.1 使用場景
- 7.5.2 基于select的服務器
- 7.5.3 基于poll的服務器
- 7.5.4 基于epoll的服務器
- 第8章 網絡性能工具Iperf
- 8.1 Iperf的特點
- 8.2 Iperf的工作原理
- 8.3 Iperf的主要功能
- 8.4 Iperf在Linux下的使用
- 8.4.1 在Linux下安裝Iperf
- 8.4.2 Iperf的簡單使用
- 8.5 Iperf在Windows下的使用
- 8.5.1 命令行版本
- 8.5.2 圖形化版本
- 第9章 HTTP服務器編程
- 9.1 CGI程序的工作方式
- 9.2 架設Web服務器Apache
- 9.3 HTTP的工作原理
- 9.4 HTTP的特點
- 9.5 HTTP的消息結構
- 9.6 客戶端請求消息
- 9.7 服務器響應消息
- 9.8 HTTP狀態碼
- 9.9 HTTP狀態碼分類
- 9.10 實現HTTP服務器
- 9.10.1 邏輯架構
- 9.10.2 程序工作流程
- 9.10.3 主要功能函數
- 9.10.4 工程實現
- 第10章 基于Libevent的FTP服務器
- 10.1 Reactor模式
- 10.1.1 Reactor模式的優點
- 10.1.2 Reactor模式的框架
- 10.1.3 Reactor事件處理流程
- 10.2 使用Libevnet的基本流程
- 10.3 下載和編譯Libevent
- 10.4 FTP概述
- 10.4.1 FTP的工作原理
- 10.4.2 FTP的傳輸方式
- 10.4.3 FTP的工作方式
- 10.4.4 FTP命令
- 10.4.5 FTP應答碼
- 10.5 開發FTP服務器
- 10.6 開發FTP客戶端
- 10.6.1 客戶端需求分析
- 10.6.2 概要設計
- 10.6.3 客戶端工作流程設計
- 10.6.4 實現主界面
- 10.6.5 實現登錄界面
- 10.6.6 實現登錄后的操作界面
- 10.6.7 運行結果
- 第11章 并發聊天服務器
- 11.1 系統平臺的選擇
- 11.1.1 應用系統平臺模式的選擇
- 11.1.2 C/S模式介紹
- 11.1.3 數據庫系統的選擇
- 11.2 系統需求分析
- 11.2.1 即時消息的一般需求
- 11.2.2 即時消息的協議需求
- 11.2.3 即時消息的安全需求
- 11.2.4 即時消息的加密和鑒別
- 11.2.5 即時消息的注冊需求
- 11.2.6 即時消息的通信需求
- 11.3 系統總體設計
- 11.4 即時通信系統的實施原理
- 11.4.1 IM的工作方式
- 11.4.2 IM的基本技術原理
- 11.4.3 IM的通信方式
- 11.5 功能模塊劃分
- 11.5.1 模塊劃分
- 11.5.2 服務器端功能
- 11.5.3 客戶端功能
- 11.5.4 服務器端多線程
- 11.5.5 客戶端多線程
- 11.6 數據庫設計
- 11.6.1 數據庫的選擇
- 11.6.2 準備MySQL環境
- 11.6.3 Linux下的MySQL的C編程
- 11.6.4 聊天系統數據庫設計
- 11.6.5 服務器端設計
- 11.6.6 客戶端設計
- 第12章 C/S和P2P聯合架構的游戲服務器
- 12.1 網絡游戲服務器發展現狀
- 12.2 現有網絡游戲服務器結構
- 12.2.1 C/S結構
- 12.2.2 游戲大廳代理結構
- 12.2.3 P2P結構
- 12.3 P2P網絡游戲技術分析
- 12.4 網絡游戲的同步機制
- 12.4.1 事件一致性
- 12.4.2 時間同步
- 12.5 總體設計
- 12.5.1 服務器系統架構模型
- 12.5.2 傳輸層協議的選擇
- 12.5.3 協議包設計
- 12.6 數據庫設計
- 12.7 服務器端詳細設計和實現
- 12.8 客戶端詳細設計和實現
- 12.8.1 五子棋簡介
- 12.8.2 棋盤類CTable
- 12.8.3 游戲模式類CGame
- 12.8.4 消息機制
- 12.8.5 游戲算法 更新時間:2023-08-31 19:55:41