注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)Go語(yǔ)言從入門(mén)到進(jìn)階實(shí)戰(zhàn)(視頻教學(xué)版)

Go語(yǔ)言從入門(mén)到進(jìn)階實(shí)戰(zhàn)(視頻教學(xué)版)

Go語(yǔ)言從入門(mén)到進(jìn)階實(shí)戰(zhàn)(視頻教學(xué)版)

定 價(jià):¥99.00

作 者: 徐波 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787111598244 出版時(shí)間: 2018-06-01 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 398 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)采用“理論+實(shí)例”的形式編寫(xiě),作者通過(guò)大量實(shí)例,并結(jié)合多年的一線(xiàn)開(kāi)發(fā)實(shí)戰(zhàn)經(jīng)驗(yàn),全面介紹了Go語(yǔ)言的語(yǔ)法及應(yīng)用開(kāi)發(fā)。作者特意為本書(shū)精心錄制了同步配套教學(xué)視頻,這將極大地提升讀者的學(xué)習(xí)效率。本書(shū)分為13章,主要介紹了Go語(yǔ)言的特性與環(huán)境搭建、基本語(yǔ)法與使用、容器(存儲(chǔ)和組織數(shù)據(jù)的方式)、流程控制、函數(shù)、結(jié)構(gòu)體、接口(interface)、包(package)、并發(fā)、反射、編譯與工具和開(kāi)發(fā)技巧等內(nèi)容,后的實(shí)戰(zhàn)演練部分剖析了作者的開(kāi)源網(wǎng)絡(luò)庫(kù)cellnet的架構(gòu)及設(shè)計(jì)思想,并且實(shí)現(xiàn)了Socket聊天功能。本書(shū)對(duì)于Go語(yǔ)言的特色功能——并發(fā),有全面、深入的講解,需要讀者重點(diǎn)學(xué)習(xí)。本書(shū)特別適合Go語(yǔ)言初學(xué)者入門(mén)和進(jìn)階閱讀,另外也適合社會(huì)培訓(xùn)學(xué)校作為教材使用,還適合大中專(zhuān)院校的相關(guān)專(zhuān)業(yè)作為教學(xué)參考書(shū)。

作者簡(jiǎn)介

暫缺《Go語(yǔ)言從入門(mén)到進(jìn)階實(shí)戰(zhàn)(視頻教學(xué)版)》作者簡(jiǎn)介

圖書(shū)目錄

目錄
配套學(xué)習(xí)資源
前言
第1章 初識(shí)Go語(yǔ)言1
1.1 Go語(yǔ)言特性1
1.2 使用Go語(yǔ)言的項(xiàng)目9
1.3 怎樣安裝Go語(yǔ)言開(kāi)發(fā)包10
1.3.1 Windows版安裝11
1.3.2 Linux版安裝13
1.4 搭建開(kāi)發(fā)環(huán)境14
1.4.1 集成開(kāi)發(fā)環(huán)境——Jetbrains GoLand14
1.4.2 方便定義功能的編輯器——Visual Studio Code15
第2章 Go語(yǔ)言基本語(yǔ)法與使用19
2.1 變量19
2.1.1 聲明變量19
2.1.2 初始化變量20
2.1.3 多個(gè)變量同時(shí)賦值23
2.1.4 匿名變量——沒(méi)有名字的變量24
2.2 數(shù)據(jù)類(lèi)型24
2.2.1 整型25
2.2.2 浮點(diǎn)型25
2.2.3 示例:輸出正弦函數(shù)(Sin)圖像26
2.2.4 布爾型28
2.2.5 字符串29
2.2.6 字符31
2.2.7 切片——能動(dòng)態(tài)分配的空間32
2.3 轉(zhuǎn)換不同的數(shù)據(jù)類(lèi)型33
2.4 指針34
2.4.1 認(rèn)識(shí)指針地址和指針類(lèi)型35
2.4.2 從指針獲取指針指向的值36
2.4.3 使用指針修改值37
2.4.4 示例:使用指針變量獲取命令行的輸入信息39
2.4.5 創(chuàng)建指針的另一種方法——new()函數(shù)40
2.5 變量生命期——變量能夠使用的代碼范圍40
2.5.1 什么是棧41
2.5.2 什么是堆42
2.5.3 變量逃逸(Escape Analysis)——自動(dòng)決定變量分配方式,提高運(yùn)行效率43
2.6 字符串應(yīng)用46
2.6.1 計(jì)算字符串長(zhǎng)度46
2.6.2 遍歷字符串——獲取每一個(gè)字符串元素47
2.6.3 獲取字符串的某一段字符48
2.6.4 修改字符串49
2.6.5 連接字符串49
2.6.6 格式化50
2.6.7 示例:Base64編碼——電子郵件的基礎(chǔ)編碼格式51
2.6.8 示例:從INI配置文件中查詢(xún)需要的值52
2.7 常量——恒定不變的值57
2.7.1 枚舉——一組常量值58
2.7.2 將枚舉值轉(zhuǎn)換為字符串59
2.8 類(lèi)型別名(Type Alias)60
2.8.1 區(qū)分類(lèi)型別名與類(lèi)型定義61
2.8.2 非本地類(lèi)型不能定義方法62
2.8.3 在結(jié)構(gòu)體成員嵌入時(shí)使用別名63
第3章 容器:存儲(chǔ)和組織數(shù)據(jù)的方式65
3.1 數(shù)組——固定大小的連續(xù)空間65
3.1.1 聲明數(shù)組66
3.1.2 初始化數(shù)組66
3.1.3 遍歷數(shù)組——訪(fǎng)問(wèn)每一個(gè)數(shù)組元素67
3.2 切片(slice)——?jiǎng)討B(tài)分配大小的連續(xù)空間67
3.2.1 從數(shù)組或切片生成新的切片68
3.2.2 聲明切片70
3.2.3 使用make()函數(shù)構(gòu)造切片71
3.2.4 使用append()函數(shù)為切片添加元素71
3.2.5 復(fù)制切片元素到另一個(gè)切片73
3.2.6 從切片中刪除元素74
3.3 映射(map)——建立事物關(guān)聯(lián)的容器76
3.3.1 添加關(guān)聯(lián)到map并訪(fǎng)問(wèn)關(guān)聯(lián)和數(shù)據(jù)76
3.3.2 遍歷map的“鍵值對(duì)”——?訪(fǎng)問(wèn)每一個(gè)map中的關(guān)聯(lián)關(guān)系77
3.3.3 使用delete()函數(shù)從map中刪除鍵值對(duì)79
3.3.4 清空map中的所有元素79
3.3.5 能夠在并發(fā)環(huán)境中使用的map——?sync.Map79
3.4 列表(list)——可以快速增刪的非連續(xù)空間的容器81
3.4.1 初始化列表83
3.4.2 在列表中插入元素83
3.4.3 從列表中刪除元素84
3.4.4 遍歷列表——訪(fǎng)問(wèn)列表的每一個(gè)元素85
第4章 流程控制87
4.1 條件判斷(if)87
4.2 構(gòu)建循環(huán)(for)88
4.2.1 for中的初始語(yǔ)句——開(kāi)始循環(huán)時(shí)執(zhí)行的語(yǔ)句89
4.2.2 for中的條件表達(dá)式——控制是否循環(huán)的開(kāi)關(guān)89
4.2.3 for中的結(jié)束語(yǔ)句——每次循環(huán)結(jié)束時(shí)執(zhí)行的語(yǔ)句90
4.3 示例:九九乘法表90
4.4 鍵值循環(huán)(for range)——直接獲得對(duì)象的索引和數(shù)據(jù)91
4.4.1 遍歷數(shù)組、切片——獲得索引和元素92
4.4.2 遍歷字符串——獲得字符92
4.4.3 遍歷map——獲得map的鍵和值92
4.4.4 遍歷通道(channel)——接收通道數(shù)據(jù)93
4.4.5 在遍歷中選擇希望獲得的變量93
4.5 分支選擇(switch)——擁有多個(gè)條件分支的判斷94
4.5.1 基本寫(xiě)法95
4.5.2 跨越case的fallthrough——兼容C語(yǔ)言的case設(shè)計(jì)96
4.6 跳轉(zhuǎn)到指定代碼標(biāo)簽(goto)96
4.6.1 使用goto退出多層循環(huán)96
4.6.2 使用goto集中處理錯(cuò)誤97
4.6.3 統(tǒng)一錯(cuò)誤處理98
4.7 跳出指定循環(huán)(break)——可以跳出多層循環(huán)99
4.8 繼續(xù)下一次循環(huán)(continue)100
第5章 函數(shù)(function)101
5.1 聲明函數(shù)101
5.1.1 普通函數(shù)的聲明形式101
5.1.2 參數(shù)類(lèi)型的簡(jiǎn)寫(xiě)102
5.1.3 函數(shù)的返回值102
5.1.4 調(diào)用函數(shù)104
5.1.5 示例:將“秒”解析為時(shí)間單位104
5.1.6 示例:函數(shù)中的參數(shù)傳遞效果測(cè)試105
5.2 函數(shù)變量——把函數(shù)作為值保存到變量中108
5.3 示例:字符串的鏈?zhǔn)教幚怼僮髋c數(shù)據(jù)分離的設(shè)計(jì)技巧109
5.4 匿名函數(shù)——沒(méi)有函數(shù)名字的函數(shù)112
5.4.1 定義一個(gè)匿名函數(shù)112
5.4.2 匿名函數(shù)用作回調(diào)函數(shù)113
5.4.3 使用匿名函數(shù)實(shí)現(xiàn)操作封裝113
5.5 函數(shù)類(lèi)型實(shí)現(xiàn)接口——把函數(shù)作為接口來(lái)調(diào)用115
5.5.1 結(jié)構(gòu)體實(shí)現(xiàn)接口115
5.5.2 函數(shù)體實(shí)現(xiàn)接口116
5.5.3 HTTP包中的例子117
5.6 閉包(Closure)——引用了外部變量的匿名函數(shù)118
5.6.1 在閉包內(nèi)部修改引用的變量119
5.6.2 示例:閉包的記憶效應(yīng)119
5.6.3 示例:閉包實(shí)現(xiàn)生成器121
5.7 可變參數(shù)——參數(shù)數(shù)量不固定的函數(shù)形式122
5.7.1 fmt包中的例子122
5.7.2 遍歷可變參數(shù)列表——獲取每一個(gè)參數(shù)的值123
5.7.3 獲得可變參數(shù)類(lèi)型——獲得每一個(gè)參數(shù)的類(lèi)型124
5.7.4 在多個(gè)可變參數(shù)函數(shù)中傳遞參數(shù)125
5.8 延遲執(zhí)行語(yǔ)句(defer)127
5.8.1 多個(gè)延遲執(zhí)行語(yǔ)句的處理順序127
5.8.2 使用延遲執(zhí)行語(yǔ)句在函數(shù)退出時(shí)釋放資源127
5.9 處理運(yùn)行時(shí)發(fā)生的錯(cuò)誤131
5.9.1 net包中的例子131
5.9.2 錯(cuò)誤接口的定義格式132
5.9.3 自定義一個(gè)錯(cuò)誤132
5.9.4 示例:在解析中使用自定義錯(cuò)誤133
5.10 宕機(jī)(panic)——程序終止運(yùn)行135
5.10.1 手動(dòng)觸發(fā)宕機(jī)135
5.10.2 在運(yùn)行依賴(lài)的必備資源缺失時(shí)主動(dòng)觸發(fā)宕機(jī)136
5.10.3 在宕機(jī)時(shí)觸發(fā)延遲執(zhí)行語(yǔ)句136
5.11 宕機(jī)恢復(fù)(recover)——防止程序崩潰137
5.11.1 讓程序在崩潰時(shí)繼續(xù)執(zhí)行137
5.11.2 panic和recover的關(guān)系139
第6章 結(jié)構(gòu)體(struct)141
6.1 定義結(jié)構(gòu)體141
6.2 實(shí)例化結(jié)構(gòu)體——為結(jié)構(gòu)體分配內(nèi)存并初始化142
6.2.1 基本的實(shí)例化形式142
6.2.2 創(chuàng)建指針類(lèi)型的結(jié)構(gòu)體143
6.2.3 取結(jié)構(gòu)體的地址實(shí)例化143
6.3 初始化結(jié)構(gòu)體的成員變量144
6.3.1 使用“鍵值對(duì)”初始化結(jié)構(gòu)體145
6.3.2 使用多個(gè)值的列表初始化結(jié)構(gòu)體146
6.3.3 初始化匿名結(jié)構(gòu)體147
6.4 構(gòu)造函數(shù)——結(jié)構(gòu)體和類(lèi)型的一系列初始化操作的函數(shù)封裝148
6.4.1 多種方式創(chuàng)建和初始化結(jié)構(gòu)體——模擬構(gòu)造函數(shù)重載149
6.4.2 帶有父子關(guān)系的結(jié)構(gòu)體的構(gòu)造和初始化——模擬父級(jí)構(gòu)造調(diào)用149
6.5 方法150
6.5.1 為結(jié)構(gòu)體添加方法151
6.5.2 接收器——方法作用的目標(biāo)152
6.5.3 示例:二維矢量模擬玩家移動(dòng)155
6.5.4 為類(lèi)型添加方法160
6.5.5 示例:使用事件系統(tǒng)實(shí)現(xiàn)事件的響應(yīng)和處理165
6.6 類(lèi)型內(nèi)嵌和結(jié)構(gòu)體內(nèi)嵌170
6.6.1 聲明結(jié)構(gòu)體內(nèi)嵌170
6.6.2 結(jié)構(gòu)內(nèi)嵌特性172
6.6.3 使用組合思想描述對(duì)象特性173
6.6.4 初始化結(jié)構(gòu)體內(nèi)嵌174
6.6.5 初始化內(nèi)嵌匿名結(jié)構(gòu)體175
6.6.6 成員名字沖突177
6.7 示例:使用匿名結(jié)構(gòu)體分離JSON數(shù)據(jù)178
第7章 接口(interface)181
7.1 聲明接口181
7.1.1 接口聲明的格式181
7.1.2 開(kāi)發(fā)中常見(jiàn)的接口及寫(xiě)法182
7.2 實(shí)現(xiàn)接口的條件182
7.2.1 接口被實(shí)現(xiàn)的條件一:接口的方法與實(shí)現(xiàn)接口的類(lèi)型方法格式一致182
7.2.2 條件二:接口中所有方法均被實(shí)現(xiàn)185
7.3 理解類(lèi)型與接口的關(guān)系186
7.3.1 一個(gè)類(lèi)型可以實(shí)現(xiàn)多個(gè)接口186
7.3.2 多個(gè)類(lèi)型可以實(shí)現(xiàn)相同的接口187
7.4 示例:便于擴(kuò)展輸出方式的日志系統(tǒng)189
7.5 示例:使用接口進(jìn)行數(shù)據(jù)的排序195
7.5.1 使用sort.Interface接口進(jìn)行排序195
7.5.2 常見(jiàn)類(lèi)型的便捷排序197
7.5.3 對(duì)結(jié)構(gòu)體數(shù)據(jù)進(jìn)行排序199
7.6 接口的嵌套組合——將多個(gè)接口放在一個(gè)接口內(nèi)202
7.7 在接口和類(lèi)型間轉(zhuǎn)換205
7.7.1 類(lèi)型斷言的格式205
7.7.2 將接口轉(zhuǎn)換為其他接口205
7.7.3 將接口轉(zhuǎn)換為其他類(lèi)型208
7.8 空接口類(lèi)型(interface{})——能保存所有值的類(lèi)型208
7.8.1 將值保存到空接口209
7.8.2 從空接口獲取值209
7.8.3 空接口的值比較210
7.9 示例:使用空接口實(shí)現(xiàn)可以保存任意值的字典211
7.10 類(lèi)型分支——批量判斷空接口中變量的類(lèi)型214
7.10.1 類(lèi)型斷言的書(shū)寫(xiě)格式214
7.10.2 使用類(lèi)型分支判斷基本類(lèi)型215
7.10.3 使用類(lèi)型分支判斷接口類(lèi)型215
7.11 示例:實(shí)現(xiàn)有限狀態(tài)機(jī)(FSM)217
第8章 包(package)227
8.1 工作目錄(GOPATH)227
8.1.1 使用命令行查看GOPATH信息227
8.1.2 使用GOPATH的工程結(jié)構(gòu)228
8.1.3 設(shè)置和使用GOPATH229
8.1.4 在多項(xiàng)目工程中使用GOPATH230
8.2 創(chuàng)建包package——編寫(xiě)自己的代碼擴(kuò)展231
8.3 導(dǎo)出標(biāo)識(shí)符——讓外部訪(fǎng)問(wèn)包的類(lèi)型和值231
8.3.1 導(dǎo)出包內(nèi)標(biāo)識(shí)符231
8.3.2 導(dǎo)出結(jié)構(gòu)體及接口成員232
8.4 導(dǎo)入包(import)——在代碼中使用其他的代碼232
8.4.1 默認(rèn)導(dǎo)入的寫(xiě)法233
8.4.2 導(dǎo)入包后自定義引用的包名234
8.4.3 匿名導(dǎo)入包——只導(dǎo)入包但不使用包內(nèi)類(lèi)型和數(shù)值235
8.4.4 包在程序啟動(dòng)前的初始化入口:init235
8.4.5 理解包導(dǎo)入后的init()函數(shù)初始化順序235
8.5 示例:工廠(chǎng)模式自動(dòng)注冊(cè)——管理多個(gè)包的結(jié)構(gòu)體237
第9章 并發(fā)241
9.1 輕量級(jí)線(xiàn)程(goroutine)——根據(jù)需要隨時(shí)創(chuàng)建的“線(xiàn)程”241
9.1.1 使用普通函數(shù)創(chuàng)建goroutine241
9.1.2 使用匿名函數(shù)創(chuàng)建goroutine244
9.1.3 調(diào)整并發(fā)的運(yùn)行性能(GOMAXPROCS)245
9.1.4 理解并發(fā)和并行245
9.1.5 Go語(yǔ)言的協(xié)作程序(goroutine)和普通的協(xié)作程序(coroutine)246
9.2 通道(channel)——在多個(gè)goroutine間通信的管道246
9.2.1 通道的特性247
9.2.2 聲明通道類(lèi)型247
9.2.3 創(chuàng)建通道248
9.2.4 使用通道發(fā)送數(shù)據(jù)248
9.2.5 使用通道接收數(shù)據(jù)249
9.2.6 示例:并發(fā)打印252
9.2.7 單向通道——通道中的單行道254
9.2.8 帶緩沖的通道255
9.2.9 通道的多路復(fù)用——同時(shí)處理接收和發(fā)送多個(gè)通道的數(shù)據(jù)257
9.2.10 示例:模擬遠(yuǎn)程過(guò)程調(diào)用(RPC)258
9.2.11 示例:使用通道響應(yīng)計(jì)時(shí)器的事件261
9.2.12 關(guān)閉通道后繼續(xù)使用通道264
9.3 示例:Telnet回音服務(wù)器——TCP服務(wù)器的基本結(jié)構(gòu)266
9.4 同步——保證并發(fā)環(huán)境下數(shù)據(jù)訪(fǎng)問(wèn)的正確性273
9.4.1 競(jìng)態(tài)檢測(cè)——檢測(cè)代碼在并發(fā)環(huán)境下可能出現(xiàn)的問(wèn)題273
9.4.2 互斥鎖(sync.Mutex)——保證同時(shí)只有一個(gè)goroutine可以訪(fǎng)問(wèn)共享資源275
9.4.3 讀寫(xiě)互斥鎖(sync.RWMutex)——在讀比寫(xiě)多的環(huán)境下比互斥鎖更高效277
9.4.4 等待組(sync.WaitGroup)——保證在并發(fā)環(huán)境中完成指定數(shù)量的任務(wù)277
第10章 反射280
10.1 反射的類(lèi)型對(duì)象(reflect.Type)280
10.1.1 理解反射的類(lèi)型(Type)與種類(lèi)(Kind)281
10.1.2 指針與指針指向的元素283
10.1.3 使用反射獲取結(jié)構(gòu)體的成員類(lèi)型284
10.1.4 結(jié)構(gòu)體標(biāo)簽(Struct Tag)——對(duì)結(jié)構(gòu)體字段的額外信息標(biāo)簽287
10.2 反射的值對(duì)象(reflect.Value)288
10.2.1 使用反射值對(duì)象包裝任意值288
10.2.2 從反射值對(duì)象獲取被包裝的值289
10.2.3 使用反射訪(fǎng)問(wèn)結(jié)構(gòu)體的成員字段的值290
10.2.4 反射對(duì)象的空和有效性判斷292
10.2.5 使用反射值對(duì)象修改變量的值293
10.2.6 通過(guò)類(lèi)型創(chuàng)建類(lèi)型的實(shí)例297
10.2.7 使用反射調(diào)用函數(shù)298
10.3 示例:將結(jié)構(gòu)體的數(shù)據(jù)保存為JSON格式的文本數(shù)據(jù)299
第11章 編譯與工具306
11.1 編譯(go build)306
11.1.1 go build 無(wú)參數(shù)編譯306
11.1.2 go build+文件列表307
11.1.3 go build +包308
11.1. 4 go build編譯時(shí)的附加參數(shù)310
11.2 編譯后運(yùn)行(go run)310
11.3 編譯并安裝(go install)311
11.4 一鍵獲取代碼、編譯并安裝(go get)312
11.4.1 遠(yuǎn)程包的路徑格式312
11.4.2 go get + 遠(yuǎn)程包312
11.4.3 go get使用時(shí)的附加參數(shù)313
11.5 測(cè)試(go test)313
11.5.1 單元測(cè)試——測(cè)試和驗(yàn)證代碼的框架313
11.5.2 基準(zhǔn)測(cè)試——獲得代碼內(nèi)存占用和運(yùn)行效率的性能數(shù)據(jù)316
11.6 性能分析(go pprof)——發(fā)現(xiàn)代碼性能問(wèn)題的調(diào)用位置319
11.6.1 安裝第三方圖形化顯式分析數(shù)據(jù)工具(Graphviz)319
11.6.2 安裝第三方性能分析來(lái)分析代碼包319
11.6.3 性能分析代碼319
第12章 “避坑”與技巧323
12.1 合理地使用并發(fā)特性323
12.1.1 了解goroutine的生命期時(shí)再創(chuàng)建goroutine323
12.1.2 避免在不必要的地方使用通道326
12.2 反射:性能和靈活性的雙刃劍330
12.3 接口的nil判斷335
12.4 map的多鍵索引——多個(gè)數(shù)值條件可以同時(shí)查詢(xún)336
12.4.1 基于哈希值的多鍵索引及查詢(xún)337
12.4.2 利用map特性的多鍵索引及查詢(xún)341
12.4.3 總結(jié)342
12.5 優(yōu)雅地處理TCP粘包342
第13章 實(shí)戰(zhàn)演練——剖析cellnet網(wǎng)絡(luò)庫(kù)設(shè)計(jì)并實(shí)現(xiàn)Socket聊天功能354
13.1 了解cellet網(wǎng)絡(luò)庫(kù)特性、流程及架構(gòu)354
13.1.1 cellnet網(wǎng)絡(luò)庫(kù)的特性354
13.1.2 cellnet網(wǎng)絡(luò)庫(kù)的流程及架構(gòu)356
13.2 管理TCP Socket連接356
13.2.1 理解Socket的事件類(lèi)型357
13.2.2 管理事件回調(diào)359
13.2.3 連接器(Connector)361
13.2.4 會(huì)話(huà)管理(SessionManager)363
13.2.5 接受器(Acceptor)366
13.3 組織接收和發(fā)送數(shù)據(jù)流程的Socket會(huì)話(huà)(Session)367
13.3.1 在會(huì)話(huà)開(kāi)始時(shí)啟動(dòng)goroutine和派發(fā)事件368
13.3.2 會(huì)話(huà)中的接收數(shù)據(jù)循環(huán)369
13.3.3 會(huì)話(huà)中的發(fā)送數(shù)據(jù)循環(huán)370
13.4 排隊(duì)處理事件的事件隊(duì)列(EventQueue)372
13.4.1 實(shí)現(xiàn)事件隊(duì)列372
13.4.2 使用不同的事件隊(duì)列模式處理數(shù)據(jù)374
13.5 消息編碼(codec)——讓cellnet支持消息的多種編碼格式377
13.6 消息元信息(MessageMeta)——消息ID、消息名稱(chēng)和消息類(lèi)型的關(guān)聯(lián)關(guān)系379
13.6.1 理解消息元信息380
13.6.2 注冊(cè)消息元信息380
13.6.3 示例:使用消息元信息381
13.6.4 實(shí)現(xiàn)消息的編碼(EncodeMessage())和解碼(DecodeMessage())函數(shù)382
13.7 接收和發(fā)送封包(packet)383
13.7.1 接收可變長(zhǎng)度封包384
13.7.2 了解封包數(shù)據(jù)讀取器(PacketReader)385
13.7.3 了解封包數(shù)據(jù)寫(xiě)入器(PacketWriter)387
13.7.4 讀取自定義封包及數(shù)據(jù)387
13.7.5 寫(xiě)入自定義封包及數(shù)據(jù)389
13.7.6 響應(yīng)消息處理事件390
13.8 使用cellnet網(wǎng)絡(luò)庫(kù)實(shí)現(xiàn)聊天功能392
13.8.1 定義聊天協(xié)議393
13.8.2 實(shí)現(xiàn)客戶(hù)端功能394
13.8.3 實(shí)現(xiàn)服務(wù)器功能396
13.8.4 運(yùn)行聊天服務(wù)器和客戶(hù)端398

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)