舉報

會員
Linux網絡程序設計:基于龍芯平臺
最新章節:
12.3.6 實現簡單聊天室服務器
本書著重闡述基于龍芯平臺(龍芯CPU和Loongnix操作系統)的網絡程序開發。本書首先介紹龍芯平臺下的C語言編譯工具鏈,包括Loongnix操作系統的安裝、Loongnix操作系統的基本使用方法、Loongnix操作系統中C語言的編程工具和代碼管理工具Git;然后介紹在龍芯平臺上基于編譯工具鏈編寫網絡程序的相關知識,包括網絡程序的基本原理,套接字應用程序接口的基本使用方法,多線程、多進程和I/O復用網絡程序的編程方法,原始套接字的編程方法;最后通過一個綜合性的網絡軟件項目案例,介紹使用Qt編寫圖形界面的網絡程序的基本方法。本書適合作為應用型普通高校的電子信息類專業、計算機科學與技術等專業的教材,也可作為高職院校相關專業的擴展教材。自主信息技術領域的相關技術人員也可將本書用作網絡程序開發的參考資料。
最新章節
- 12.3.6 實現簡單聊天室服務器
- 12.3.5 用Qt實現簡單聊天室客戶端
- 12.3.4 QSocket相關類的使用方法
- 12.3.3 基于對話框的Qt圖形界面實現
- 12.3.2 面向對象編程與Qt中的信號與槽機制
- 12.3.1 Qt編程環境的安裝及設置
品牌:人郵圖書
上架時間:2024-04-24 17:26:30
出版社:人民郵電出版社
本書數字版權由人郵圖書提供,并由其授權上海閱文信息技術有限公司制作發行
- 12.3.6 實現簡單聊天室服務器 更新時間:2024-04-24 17:36:30
- 12.3.5 用Qt實現簡單聊天室客戶端
- 12.3.4 QSocket相關類的使用方法
- 12.3.3 基于對話框的Qt圖形界面實現
- 12.3.2 面向對象編程與Qt中的信號與槽機制
- 12.3.1 Qt編程環境的安裝及設置
- 12.3 使用Qt實現網絡程序
- 12.2.4 遠程殼函數庫的實現
- 12.2.3 遠程調用服務實現
- 12.2.2 遠程接口調用協議設計
- 12.2.1 遠程過程調用簡介
- 12.2 實現遠程過程調用
- 12.1.4 HTTP請求處理和返回HTTP響應
- 12.1.3 HTTP請求和響應報文結構
- 12.1.2 HTTP簡介
- 12.1.1 多線程Web服務器實現
- 12.1 實現簡單的Web服務器
- 第12章 綜合運用案例
- 11.5.4 pcap抓包樣例
- 11.5.3 設置過濾條件
- 11.5.2 pcap抓包流程
- 11.5.1 pcap概述
- 11.5 pcap簡介
- 11.4.4 使用ping工具接收ICMP數據包樣例
- 11.4.3 網絡層原始套接字的接收流程
- 11.4.2 使用ping工具發送ICMP數據包樣例
- 11.4.1 網絡層原始套接字的發送流程
- 11.4 網絡層原始套接字
- 11.3.4 鏈路層原始套接字抓包程序樣例
- 11.3.3 鏈路層原始套接字的接收流程
- 11.3.2 ARP數據包發送樣例
- 11.3.1 鏈路層原始套接字的發送流程
- 11.3 鏈路層原始套接字
- 11.2.3 原始套接字涉及的數據包結構
- 11.2.2 原始套接字發送與接收數據包
- 11.2.1 原始套接字創建
- 11.2 原始套接字編程簡介
- 11.1 原始套接字概述
- 第11章 原始套接字
- 10.3.3 廣播數據發送與接收
- 10.3.2 多播數據發送與接收
- 10.3.1 多播與廣播的概念
- 10.3 多播與廣播的實現
- 10.2.3 writev()與readv()函數
- 10.2.2 發送與接收帶外數據
- 10.2.1 recv()與send()函數
- 10.2 其他I/O函數
- 10.1.3 編程中域名與IP地址的轉換
- 10.1.2 ICP備案
- 10.1.1 域名與DNS
- 10.1 域名與IP地址
- 第10章 套接字編程補充
- 9.6.3 3種并發實現方法的簡單比較
- 9.6.2 邊緣觸發下的數據讀、寫方法
- 9.6.1 邊緣觸發與條件觸發的概念
- 9.6 epoll的邊緣觸發與條件觸發
- 9.5.2 使用epoll處理通信套接字
- 9.5.1 使用epoll處理監聽套接字
- 9.5 使用epoll實現并發服務器
- 9.4.2 epoll的基本操作函數
- 9.4.1 epoll與select()函數的差異
- 9.4 epoll基本使用方法
- 9.3.3 并發服務器代碼執行情況
- 9.3.2 使用select()函數監聽通信套接字
- 9.3.1 使用select()函數監聽套接字
- 9.3 使用select()函數實現服務器并發
- 9.2.3 select()函數調用流程
- 9.2.2 文件集合的基本操作函數
- 9.2.1 select()函數
- 9.2 使用select()函數實現I/O復用
- 9.1 I/O復用概述
- 第9章 I/O復用套接字編程
- 8.4.2 管道通信應用到多進程網絡程序中
- 8.4.1 管道的使用方法
- 8.4 使用管道實現進程間通信
- 8.3.3 使用多進程實現客戶端的讀、寫功能分離
- 8.3.2 “僵尸”進程的處理方法
- 8.3.1 服務器多進程的實現
- 8.3 多進程“回聲”程序實現
- 8.2.5 使用異步方式銷毀“僵尸”進程
- 8.2.4 “僵尸”進程
- 8.2.3 進程退出
- 8.2.2 銷毀進程
- 8.2.1 創建進程
- 8.2 進程的創建與銷毀
- 8.1.2 父進程和子進程
- 8.1.1 進程ID
- 8.1 進程概述
- 第8章 多進程網絡程序
- 7.4.6 代碼優化
- 7.4.5 實現聊天室客戶端程序
- 7.4.4 正確實現線程同步
- 7.4.3 斷開與對應客戶端的連接
- 7.4.2 實現轉發消息到所有客戶端
- 7.4.1 使用多線程實現服務器的并發
- 7.4 編寫多線程聊天室程序
- 7.3.3 使用信號量實現線程同步
- 7.3.2 使用互斥量實現線程同步
- 7.3.1 多線程同步問題
- 7.3 線程同步方法
- 7.2.2 線程銷毀函數
- 7.2.1 線程創建函數
- 7.2 線程的創建與銷毀
- 7.1.2 進程和線程之間的關系
- 7.1.1 操作系統、進程和線程之間的關系
- 7.1 線程概述
- 第7章 多線程網絡程序
- 6.7.3 UDP通信使用connect()函數注冊地址信息
- 6.7.2 實現UDP的“回聲”程序
- 6.7.1 sendto()函數和recvfrom()函數
- 6.7 編寫UDP“回聲”程序
- 6.6.3 基于TCP的應用層協議設計
- 6.6.2 “回聲”程序中的隱患——“粘包”
- 6.6.1 “回聲”的邏輯與實現
- 6.6 編寫TCP“回聲”程序
- 6.5.6 使用多文件實現檢錯代碼
- 6.5.5 使用shutdown()函數關閉套接字
- 6.5.4 循環實現服務器功能
- 6.5.3 通過設置套接字選項解除地址被使用
- 6.5.2 優化錯誤處理
- 6.5.1 通過命令行輸入服務器信息
- 6.5 完善“hello world!”程序
- 6.4 運行“hello world!”程序
- 6.3.2 接收消息
- 6.3.1 發送連接請求
- 6.3 編寫“hello world!”通信客戶端程序
- 6.2.6 關閉套接字
- 6.2.5 發送消息
- 6.2.4 建立套接字連接
- 6.2.3 綁定地址信息
- 6.2.2 創建套接字
- 6.2.1 查詢函數文檔
- 6.2 編寫“hello world!”通信服務器程序
- 6.1.3 套接字通信的基礎流程
- 6.1.2 發展歷程
- 6.1.1 應用程序接口
- 6.1 套接字概述
- 第6章 套接字編程
- 5.6.3 兩種模式的對比
- 5.6.2 瀏覽器/服務器模式
- 5.6.1 客戶端/服務器模式
- 5.6 網絡程序的基本模式
- 5.5.2 五元組(全相關)
- 5.5.1 三元組(半相關)
- 5.5 進程的網絡地址
- 5.4.2 端口號分配及常用端口號
- 5.4.1 端口號
- 5.4 應用標識
- 5.3.2 IP地址
- 5.3.1 MAC地址
- 5.3 網絡通信地址
- 5.2.2 TCP/IP
- 5.2.1 分層模型
- 5.2 網絡通信協議
- 5.1 網絡程序及其基本要素
- 第5章 網絡編程基礎
- 4.4.4 代碼管理工作流程
- 4.4.3 使用變基重做
- 4.4.2 創建遠程倉庫
- 4.4.1 遠程倉庫賬戶創建及密鑰配置
- 4.4 Git遠程倉庫和遠程分支
- 4.3.4 分支變基
- 4.3.3 分支合并
- 4.3.2 切換分支的注意事項
- 4.3.1 分支的創建與切換
- 4.3 Git分支
- 4.2.3 Git的基本工作流程
- 4.2.2 保存代碼到Git倉庫
- 4.2.1 Git安裝與初始設置
- 4.2 Git基本操作
- 4.1.3 Git的基本結構
- 4.1.2 集中式和分布式版本控制系統
- 4.1.1 Git代碼版本控制概述
- 4.1 Git概述
- 第4章 使用Git管理代碼
- 3.4.5 在VSCode中應用代碼規范格式化工具
- 3.4.4 VSCode中調試C程序的基本方法
- 3.4.3 在VSCode中使用CMake編譯代碼
- 3.4.2 在VSCode中應用Makefile編譯代碼
- 3.4.1 VSCode常用插件及設置
- 3.4 使用VSCode開發C程序
- 3.3.3 使用CMake編譯動態鏈接庫
- 3.3.2 使用CMake編譯應用程序
- 3.3.1 CMake基本語法
- 3.3 CMake基礎
- 3.2.5 簡單的Makefile模板
- 3.2.4 Makefile文件中基本函數的使用
- 3.2.3 在Makefile文件中指定搜索路徑
- 3.2.2 使用變量與模式匹配
- 3.2.1 Makefile基本語法
- 3.2 Makefile基礎
- 3.1.5 使用GDB調試代碼
- 3.1.4 編譯動態鏈接庫
- 3.1.3 編譯靜態鏈接庫
- 3.1.2 編譯應用程序
- 3.1.1 編譯的基本概念
- 3.1 GCC與GDB
- 第3章 信創平臺C語言編程環境
- 2.3.3 Vim編輯器基本使用方法
- 2.3.2 應用軟件安裝與卸載
- 2.3.1 常用命令
- 2.3 Loongnix操作系統使用入門
- 2.2 Loongnix操作系統
- 2.1 龍芯桌面計算機硬件平臺
- 第2章 龍芯信創平臺
- 1.2.4 信創操作系統
- 1.2.3 常見的Linux發行版
- 1.2.2 Linux與Windows的差異
- 1.2.1 Linux操作系統簡介
- 1.2 Linux及信創操作系統
- 1.1.2 其他信創CPU
- 1.1.1 龍芯CPU
- 1.1 信創CPU簡介
- 第1章 信創平臺概述
- 前言
- 內容提要
- 版權信息
- 封面
- 封面
- 版權信息
- 內容提要
- 前言
- 第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 實現簡單聊天室服務器 更新時間:2024-04-24 17:36:30