網路程式設計與開發

網路程式設計與開發

《網路程式設計與開發》是2010年清華大學出版社出版的圖書,作者是章斌。

圖書簡介

本書是關於網路程式設計方面一本綜合、全面、實用的教材,涵蓋了現有各種主要的網路程式設計技術,內容包括網路編程基本知識、Windows套接字基礎、MFC Winsock類編程、WinInet編程、不同I/O模式下的處理方法、HTTP高級編程、Winsock控制項編程以及基於ASP.NET的Web編程技術等。

目錄

第1章緒論1

1.1網路編程基礎1

1.1.1網路應用程式所處的地位1

1.1.2網間進程通信面臨的問題1

1.1.3網間進程的標識2

1.2基本網路協定4

1.2.1一般特點4

1.2.2用戶數據報協定5

1.2.3傳輸控制協定5

1.3客戶機/伺服器模型6

1.3.1模型的重要性6

1.3.2容易混淆的術語7

1.3.3模型工作過程與特點7

1.3.4C/S互動方式9

1.4網路編程分類10

1.4.1基於TCP/IP協定棧的網路編程10

1.4.2基於Web套用的網路編程10

1.4.3基於.NET的WebServices網路編程10

1.4.4.NETRemoting技術12

1.4.5電話套用編程接口(TAPI)13

1.4.6信報套用編程接口(MAPI)14

1.4.7Internet伺服器套用編程接口14

1.5本章小結15

1.6習題15第2章Windows套接字17

2.1Socket及其來源17

2.2套接字的類型17

2.2.1流式套接字18

2.2.2數據報套接字18

2.2.3原始套接字18

2.3套接字規範18

2.3.1Berkeley套接字規範18

2.3.2Windows套接字規範18

2.3.3Windows套接字和Berkeley套接字的比較19

2.4幾種典型的Windows套接字規範22

2.4.1Winsock1.022

2.4.2Winsock1.122

2.4.3Winsock2.023

2.5Winsock編程的一般模式23

2.5.1面向連線的編程模型23

2.5.2無連線編程模型24

2.5.3幾個基本概念24

2.6基本操作函式26

2.6.1Winsock的啟動和終止26

2.6.2Winsock的創建、綁定與關閉28

2.6.3通信連線的建立34

2.6.4數據的傳輸37

2.6.5Winsock的錯誤處理函式44

2.6.6Winsock的輔助函式46

2.6.7Winsock的信息查詢函式53

2.7Winsock2的新特性59

2.7.1對多協定的支持59

2.7.2對I/O與事件對象的重疊支持59

2.7.3套接口組60

2.7.4服務質量61

2.8Winsock2新增函式一覽62

2.9網路應用程式的運行環境63

2.10本章小結64

2.11習題65第3章MFCWinsock類編程66

3.1MFC簡介66

3.1.1MFC編程框架66

3.1.2MFC對象和Windows對象的關係67

3.1.3訊息映射的實現68

3.1.4MFC應用程式的執行過程71

3.2CAsyncSocket類72

3.2.1基本編程模型72

3.2.2創建CAsyncSocket類對象74

3.2.3CAsyncSocket類可以接收並處理的訊息事件75

3.2.4連線的請求與接受76

3.2.5數據的傳送與接收79

3.2.6關閉套接字80

3.2.7其他成員函式81

3.3基於CAsyncSocket類的單點聊天程式82

3.3.1實現目標82

3.3.2創建客戶機程式82

3.3.3客戶機程式的類與訊息驅動90

3.3.4客戶機程式主要功能的代碼和分析91

3.3.5創建伺服器程式99

3.3.6伺服器程式的流程和訊息驅動101

3.3.7點對點聊天的伺服器程式主要功能的代碼和分析101

3.4CSocket類109

3.4.1基本編程模型110

3.4.2創建CSocket類對象111

3.4.3連線的建立112

3.4.4數據的收發112

3.4.5關閉套接字和清除相關對象112

3.5基於CSocket類的多點聊天程式112

3.5.1聊天室程式的功能112

3.5.2創建聊天室的伺服器程式113

3.5.3聊天室伺服器程式的主要實現代碼和分析116

3.5.4創建聊天室的客戶機程式127

3.5.5聊天室客戶機程式的主要實現代碼和分析129

3.6本章小結139

3.7習題139第4章WinInet編程141

4.1WinInetAPI的一般化問題141

4.1.1HINTERNET句柄141

4.1.2WinInet中錯誤的處理142

4.1.3WinInet函式中的緩衝區參數142

4.1.4WinInet函式的異步操作模式142

4.2基本WinInet函式143

4.2.1打開一個WinInet會話143

4.2.2與伺服器建立連線144

4.2.3回調函式145

4.2.4通用檔案操作147

4.2.5從Internet檔案讀數據149

4.2.6向Internet檔案寫數據150

4.2.7移動Internet檔案指針150

4.2.8數據可用性查詢151

4.2.9其他基本函式151

4.3FTP客戶機WinInet函式152

4.3.1一般步驟152

4.3.2查詢FTP伺服器上的檔案和目錄152

4.3.3查詢或改變FTP伺服器的當前目錄155

4.3.4在FTP伺服器上創建目錄157

4.3.5在FTP伺服器上刪除目錄158

4.3.6從FTP伺服器中下載檔案159

4.3.7向FTP伺服器中上傳檔案162

4.3.8從FTP伺服器中刪除檔案163

4.3.9重命名FTP伺服器上的檔案或目錄164

4.4MFCWinInet類165

4.4.1概述165

4.4.2MFCWinInet所包含的類166

4.4.3基本編程模型167

4.4.4WinInet類簡介170

4.5基於WinInet類的FTP客戶機編程實例179

4.5.1程式要實現的功能180

4.5.2創建應用程式的過程181

4.6本章小結192

4.7習題192第5章不同I/O模式下的處理方法193

5.1阻塞模式與非阻塞模式193

5.1.1阻塞模式及其優缺點193

5.1.2非阻塞模式及其優缺點193

5.2多進程與多執行緒194

5.2.1什麼是多進程194

5.2.2什麼是多執行緒195

5.2.3多進程和多執行緒的關係195

5.2.4網路編程採用多執行緒機制的重要性196

5.3I/O阻塞模式的多執行緒網路編程方法197

5.3.1MFC支持的兩種執行緒197

5.3.2創建MFC的工作執行緒198

5.3.3創建並啟動用戶界面執行緒201

5.3.4終止執行緒204

5.3.5FTP客戶機多執行緒編程實例206

5.4I/O非阻塞模式的異步處理模型215

5.4.1select模型215

5.4.2WSAAsyncSelect異步I/O模型218

5.4.3WSAEventSelect事件選擇模型222

5.4.4其他模型227

5.5本章小結228

5.6習題228第6章HTTP高級編程230

6.1HTTP230

6.1.1HTTP的基本概念230

6.1.2HTTP的套用231

6.2CHtmlView類基本知識232

6.2.1CHtmlView類與WebBrowser控制項232

6.2.2CHtmlView類的成員函式233

6.3網路瀏覽器實例239

6.3.1程式實現的基本功能239

6.3.2程式實現的一般步驟240

6.4本章小結245

6.5習題246第7章Winsock控制項編程247

7.1Winsock控制項的基本操作247

7.1.1Winsock控制項的數據傳輸247

7.1.2Winsock控制項的基本屬性247

7.1.3Winsock控制項的基本方法248

7.1.4Winsock控制項的基本事件248

7.2電子郵件系統基本原理249

7.2.1郵件傳輸原理250

7.2.2電子郵件的地址250

7.2.3常用的幾種電子郵件協定250

7.3簡單電子郵件系統的實現過程251

7.3.1郵件伺服器的實現251

7.3.2郵件客戶端的實現258

7.4本章小結265

7.5習題266第8章ASP.NET基礎知識267

8.1ASP.NET簡介267

8.1.1早期的Web開發267

8.1.2傳統的ASP269

8.1.3ASP.NET269

8.2ASP.NET應用程式結構270

8.2.1ASP.NET應用程式元素270

8.2.2ASP.NET應用程式目錄結構271

8.2.3ASP.NET的檔案類型271

8.3VisualStudio273

8.3.1VisualStudio集成開發環境273

8.3.2網站和Web項目276

8.3.3創建無項目檔案的網站276

8.3.4設計網頁277

8.3.5編碼模型278

8.3.6Web項目281

8.4本章小結283

8.5習題283第9章ASP.NET常用控制項與Page類284

9.1Web窗體284

9.1.1HTML標記285

9.1.2HTML控制項287

9.1.3伺服器控制項標記288

9.2ASP.NET常用伺服器控制項288

9.2.1伺服器控制項的類型288

9.2.2所有控制項的共同屬性289

9.2.3標準伺服器端控制項290

9.2.4輸入驗證控制項296

9.2.5用戶控制項301

9.3ASP.NETPage類305

9.3.1Page對象305

9.3.2Response對象和Request對象309

9.3.3Server對象313

9.3.4Session對象315

9.3.5Application對象317

9.3.6Cookie對象319

9.4本章小結320

9.5習題321第10章數據訪問323

10.1ADO.NET基礎325

10.2基本ADO.NET類與存儲過程326

10.2.1Connection類326

10.2.2Command類和DataReader類328

10.2.3DataSet類331

10.2.4DataAdapter類333

10.2.5存儲過程337

10.3數據綁定341

10.3.1單值綁定341

10.3.2重複值綁定343

10.3.3數據源控制項345

10.3.4聯合使用數據源和數據綁定控制項346

10.4本章小結351

10.5習題352第11章案例--網路購物商城353

11.1需求分析353

11.1.1項目背景353

11.1.2需求定義353

11.1.3開發環境354

11.2軟體設計354

11.2.1架構設計355

11.2.2資料庫設計355

11.2.3界面設計358

11.3功能實現360

11.3.1MasterPages母版頁實現360

11.3.2主頁面實現363

11.3.3購物車的實現367

11.3.4詳細信息實現368

11.3.5結算中心的實現372

11.4本章小結374參考文獻375第一部分EDA技術理論基礎

第1章EDA技術概述3

1.1EDA技術的含義3

1.2EDA技術的發展4

1.2.1計算機輔助設計階段4

1.2.2計算機輔助工程階段4

1.2.3電子系統設計自動化階段4

1.3常用的EDA技術開發工具4

1.3.1Altera公司集成EDA集成開發工具5

1.3.2Xilinx公司的EDA集成開發工具5

1.3.3Lattice公司的EDA集成開發工具8

1.4EDA技術的軟體開發9

1.4.1原理圖設計簡介9

1.4.2硬體描述語言設計簡介10

1.4.3VHDL語言概述12

1.5EDA技術的硬體概述14

1.5.1可程式邏輯器件簡介14

1.5.2CPLD/FPGA基礎15

1.6EDA技術的設計流程15

1.6.1設計輸入16

1.6.2設計綜合與適配17

1.6.3仿真17

1.6.4編程、配置18

1.6.5硬體驗證18

1.7傳統設計方法和EDA設計方法的比較18

1.7.1傳統設計方法18

1.7.2EDA設計方法19

1.8EDA技術的發展趨勢19

思考題與習題21第2章原理圖輸入設計22

2.1QuartusII軟體介紹22

2.1.1QuartusII軟體開發流程22

2.1.2QuartusII軟體的特點23

2.1.3QuartusII軟體的圖形用戶界面24

2.2用原理圖編輯方法設計2-4解碼器25

2.2.12-4解碼器電路輸入與編輯25

2.2.22-4解碼器的綜合31

2.2.32-4解碼器的仿真31

2.2.42-4解碼器的編程下載37

2.3較複雜的原理圖設計38

2.3.130秒倒計時電路設計39

2.3.2電子鐘計數電路設計40

思考題與習題46第3章VHDL快速入門47

3.1VHDL體系結構47

3.1.1VHDL體系結構47

3.1.2庫、程式包49

3.1.3實體部分49

3.1.4結構體部分51

3.1.5配置部分52

3.2數據選擇器的VHDL描述52

3.2.12選1數據選擇器的VHDL描述52

3.2.22選1數據選擇器的VHDL相關語法分析53

3.3觸發器的VHDL描述56

3.3.1D觸發器的VHDL描述56

3.3.2D觸發器的VHDL相關語法分析60

思考題與習題64第4章VHDL基本語句與要素65

4.1VHDL的順序語句65

4.1.1賦值語句65

4.1.2IF語句67

4.1.3CASE語句70

4.1.4LOOP語句72

4.1.5NEXT語句74

4.1.6EXIT語句74

4.1.7WAIT語句75

4.1.8ASSERT語句77

4.1.9REPORT語句79

4.1.10子程式調用語句80

4.1.11RETURN語句和NULL語句82

4.2VHDL的並行語句83

4.2.1進程語句83

4.2.2並行信號賦值語句85

4.2.3並行過程調用語句87

4.2.4元件例化語句88

4.2.5塊語句89

4.2.6生成語句91

4.3VHDL語言要素94

4.3.1VHDL文字規則94

4.3.2數據對象97

4.3.3VHDL數據類型99

4.3.4VHDL操作符104

4.4VHDL子程式107

4.4.1函式107

4.4.2過程112

4.5VHDL庫114

4.5.1VHDL庫的種類115

4.5.2VHDL庫的用法115

思考題與習題116第5章基本邏輯電路的VHDL設計117

5.1組合邏輯電路設計117

5.1.1基本門電路設計117

5.1.2編碼器設計120

5.1.3解碼器設計122

5.1.4加法器設計125

5.1.5三態門與雙向緩衝電路設計126

5.2時序邏輯電路設計129

5.2.1觸發器設計129

5.2.2移位暫存器設計131

5.2.3計數器設計133

5.3狀態機的設計137

5.3.1狀態機概述137

5.3.2一般有限狀態機的VHDL設計139

5.3.3摩爾型狀態機設計141

5.3.4米勒型狀態機設計143

5.3.5狀態機的編碼145

思考題與習題148第6章VHDL與原理圖層次型混合設計149

6.1自底向上混合設計149

6.1.1自底向上混合設計流程149

6.1.21位二進制全加器設計150

6.1.3簡易時鐘計數電路設計155

6.2自頂向下混合設計158

6.2.1自頂向下設計流程158

6.2.2十六進制計數解碼顯示電路設計159

思考題與習題166第7章宏功能模組的套用168

7.1宏功能模組概述168

7.2存儲器設計169

7.2.1ROM設計169

7.2.2RAM設計176

7.2.3FIFO設計177

7.3乘法器設計179

7.4鎖相環設計181

7.5正弦波信號發生器185

7.6IP核簡介186

思考題與習題187第8章可程式邏輯器件基礎及套用188

8.1可程式邏輯器件概述188

8.1.1邏輯電路符號的表示188

8.1.2可程式邏輯器件的分類189

8.1.3簡單的PLD原理190

8.2CPLD的結構與原理193

8.2.1CPLD的結構193

8.2.2CPLD的原理194

8.3FPGA結構與原理196

8.3.1FPGA的結構196

8.3.2FPGA的原理198

8.4CPLD與FPGA的比較201

8.4.1CPLD與FPGA的區別201

8.4.2器件套用選擇202

8.5CPLD與FPGA的編程與配置技術204

8.5.1Altera公司的下載電纜204

8.5.2Altera器件的編程/配置模式208

8.5.3Altera的配置器件208

相關詞條

熱門詞條

聯絡我們