注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計其他編程語言/工具Python網(wǎng)絡(luò)編程基礎(chǔ)

Python網(wǎng)絡(luò)編程基礎(chǔ)

Python網(wǎng)絡(luò)編程基礎(chǔ)

定 價:¥68.00

作 者: (美)高森(John Goerzen) 著;莫遲、等 譯
出版社: 電子工業(yè)出版社
叢編項:
標 簽: Python

ISBN: 9787121044953 出版時間: 2007-06-01 包裝: 平裝
開本: 16 頁數(shù): 512 字數(shù):  

內(nèi)容簡介

  《Python網(wǎng)絡(luò)編程基礎(chǔ)》全面介紹了使用Python語言進行網(wǎng)絡(luò)編程的基礎(chǔ)知識,主要內(nèi)容包括網(wǎng)絡(luò)基礎(chǔ)知識、高級網(wǎng)絡(luò)操作、Web Services、解析HTML和XHTML、XML、E-mail服務、FTP、使用Python操作數(shù)據(jù)庫、SSL、幾種服務器端框架(包括Socket服務器、SimpleXMLRPCServer、CGI和mod_python),以及多任務處理(包括Forking、線程和異步通信)等。本書實用性強,共提供了大約175個實例,6600行以上的代碼,是幫助讀者全面而快速地學習Python語言、編寫網(wǎng)絡(luò)程序的最佳實踐。本書可以作為各層次Python、Web和網(wǎng)絡(luò)程序的開發(fā)人員的參考書,在實際工作中使用書中的技術(shù),效果更佳。 本書第1部分討論了客戶端和服務器的設(shè)計,這是所有網(wǎng)絡(luò)應用程序的基礎(chǔ)。您將學到如何利用IPv6的優(yōu)點來編寫應用程序,如何與域名服務器通信,以及如何獲取網(wǎng)頁等。 本書第2部分將向您演示如何編寫發(fā)送和接收E—mail的程序、提供靜態(tài)和動態(tài)網(wǎng)頁的程序、傳輸文件以及其他網(wǎng)絡(luò)程序。您將學到如何使用Apach1e的mod_python模塊來建立基于Web的Python應用程序。 本書最后一部分側(cè)重于Python網(wǎng)絡(luò)編程高級應用方面的知識,講解了如何使用多任務處理和無阻塞的I/O來編寫可以同時處理上千個客戶端的服務器程 序。在這個過程中,您將學到編寫很多成功網(wǎng)絡(luò)程序的奧秘。最重要的是,通過對超過6600行獨立的、現(xiàn)成的代碼的學習,您將能夠立刻把您學到的知識應用到 實踐中去。

作者簡介

  John Goerzen從1996年開始就是Debian GNU/Linux操作系統(tǒng)開發(fā)組的成員,最近15年他一直都在從事軟件開發(fā)方面的工作。他對操作系統(tǒng)、程序語言和網(wǎng)絡(luò)都很感興趣,并且在工作中也開發(fā)并用到以上這些方面的各種軟件。目前,他在一個中等規(guī)模的制造公司中擔當程序員和Unix管理員,并且已經(jīng)使用Python開發(fā)了很多用于公司數(shù)據(jù)系統(tǒng)的接口。 作為Debian工作組成員,John為系統(tǒng)維護了很多不同的程序。從1998年開始,他就致力于啟動或向新的體系結(jié)構(gòu)擴展Debian,并在Alpha、PowerPC、AMD64和NetBSD i386上取得了很大的成就。 2003年,John被選進了Software in the Public Interest(SPI)的董事會。這個公司負責管理Debian在法律和財務上的事務。同年晚些時候,他被任命為SPI的副會長。 除作為Debian工作組成員之外,John還用了大量的時間寫軟件。在他眾所周知的作品中,有兩個是用Python寫的網(wǎng)絡(luò)激活程序。OfflineIMAP是一個雙向的郵件同步程序,而PyGoDherd是一個多協(xié)議的Web和Gopher服務器。這兩個軟件都用Python獨有的特性來支持模塊體系結(jié)構(gòu),并且提供了很好的靈活性。 John還寫了很多書,包括那本800頁的《Linux Programming Bible》。他還經(jīng)常為雜志撰寫文章,同時還是很多書的技術(shù)編輯。他還建立了Air Capital Linux用戶組,并經(jīng)常在組里演講。

圖書目錄

目錄
Contents
第1章 客戶/服務器網(wǎng)絡(luò)介紹 3
理解TCP基礎(chǔ) 3
尋址 4
可靠性 4
路由 5
安全 6
使用客戶/服務器模式 6
服務器端端口號 7
客戶端端口號 7
理解UDP 7
理解物理傳輸和以太網(wǎng) 9
Python網(wǎng)絡(luò)編程 9
底層接口 10
基本客戶端操作 10
錯誤和異常 11
文件類對象 12
基本服務器操作 13
高級接口 15
總結(jié) 17
第2章 網(wǎng)絡(luò)客戶端 19
理解Sockets 19
建立Sockets 20
尋找端口號 21
從Socekt獲取信息 22
利用Sockets通信 23
處理錯誤 23
Socket異常 24
遺漏的錯誤 26
文件類對象引起的錯誤 29
使用UDP 31
總結(jié) 34
第3章 網(wǎng)絡(luò)服務器 35
準備連接 35
建立Socket對象 36
設(shè)置和得到Socket選項 36
綁定Socket 39
偵聽連接 39
接受連接 40
處理錯誤 41
使用UDP 43
使用inetd或xinetd 45
配置inetd 47
配置xinetd 48
運行例子 50
通過inetd使用Socket對象 51
通過inetd使用UDP 51
和inetd相關(guān)的錯誤處理 54
什么時候不應該使用inetd 55
通過syslog來記錄日志 55
在Python中使用syslog 56
避免死鎖 60
總結(jié) 63
第4章 域名系統(tǒng) 65
進行DNS查詢 65
使用操作系統(tǒng)查詢服務 66
執(zhí)行基本查詢 66
執(zhí)行反向查詢 70
反向查找基礎(chǔ) 71
對于反向查找數(shù)據(jù)真實性的檢查 72
獲得環(huán)境信息 74
使用PyDNS進行高級查詢 76
DNS Records 76
安裝PyDNS 77
簡單PyDNS查詢 77
查詢特殊的名稱服務器 79
分解查詢結(jié)果 82
總結(jié) 85
第5章 高級網(wǎng)絡(luò)操作 87
半開放Sockets 87
超時 89
傳輸字符串 90
唯一字符串結(jié)束標識符 91
轉(zhuǎn)義符(Escaping) 91
數(shù)據(jù)編碼 92
可調(diào)整的字符串結(jié)束標識符 92
首部的大小指示器 92
理解網(wǎng)絡(luò)字節(jié)順序 93
使用廣播數(shù)據(jù) 95
使用IPv6 97
解析地址 98
處理Family參數(shù) 100
綁定到特殊的地址 102
使用poll() 或 select()實現(xiàn)事件通知 104
使用select() 107
總結(jié) 109
第6章 Web客戶端訪問 113
獲取Web頁面 114
認證 115
提交表單數(shù)據(jù) 118
用GET方法提交 118
用POST方法提交 120
處理錯誤 121
捕獲連接錯誤 121
捕獲數(shù)據(jù)錯誤 123
使用非HTTP協(xié)議 125
總結(jié) 125
第7章 解析HTML和XHTML 127
理解基本的HTML解析 128
處理真實的HTML 130
翻譯實體 130
轉(zhuǎn)換字符參考 132
處理不均衡的標簽 133
一個實際可以工作的例子 137
總結(jié) 143
第8章 XML和XML-RPC 145
理解XML文檔 147
使用DOM 148
使用DOM完全解析 151
使用DOM產(chǎn)生文檔 154
DOM類型參考 157
使用XML-RPC 159
XML-RPC自省 160
一個具有完整功能的例子 162
XML-RPC錯誤處理 165
XML-RPC類型處理 165
總結(jié) 166
第9章 E-Mail的編寫和編碼 169
E-Mail Composition and Decoding 169
理解傳統(tǒng)信息 169
處理Header 170
Headers不會說明您的郵件 171
含有的Bcc的Headers 171
郵件列表中的Headers 172
垃圾中的Headers 172
規(guī)則的例外情況 172
顯示Headers中的信息 173
撰寫傳統(tǒng)的郵件 173
添加Date和Message-ID Headers 174
解析傳統(tǒng)郵件 176
基本郵件解析 177
解析日期 178
理解MIME 180
MIME概念 180
MIME是如何工作的 181
添加MIME附件 182
編寫MIME替換方法 185
構(gòu)建非英語的Header 187
組成嵌套的多部分 188
解析MIME郵件 190
解碼部分 192
解碼Headers 193
總結(jié) 195
第10章 簡單郵件傳輸協(xié)議(SMTP) 197
Simple Message Transport Protocol 197
SMTP庫簡介 197
錯誤處理和會話調(diào)試 199
從EHLO中得到信息 202
使用安全Sockets層(Secure Sockets Layer,SSL)和安全傳輸層(Transport Layer Security,TLS) 205
認證 208
SMTP技巧 209
總結(jié) 210
第11章 POP 211
連接和認證 212
取得郵箱信息 215
下載郵件 216
刪除郵件 218
總結(jié) 221
第12章 IMAP 223
理解Python中的IMAP 224
Twisted中的IMAP簡介 225
理解Twisted基礎(chǔ) 226
登錄 228
錯誤處理 231
掃描文件夾列表 236
檢查文件夾 239
Message Numbers 和. UIDs 239
郵件范圍 240
總結(jié)信息 240
基本下載 243
使用一個命令下載整個一個郵箱 243
下載單獨郵件 245
標記和刪除郵件 249
讀取標志 250
設(shè)置標志 252
刪除郵件 252
取得郵件的部分內(nèi)容 255
找出郵件結(jié)構(gòu) 256
得到指定的部分 260
查找郵件 262
構(gòu)造查詢 263
執(zhí)行查詢 265
添加郵件 268
建立和刪除文件夾 270
在文件夾之間移動郵件 270
總結(jié) 271
第13章 FTP 275
理解FTP 275
通信信道 276
認證和匿名FTP 276
用Python實現(xiàn)FTP功能 277
以ASCII模式下載文件 278
以二進制模式下載文件 279
以高級二進制模式下載文件 279
上傳數(shù)據(jù) 281
以高級二進制模式上傳 282
處理錯誤 283
掃描目錄 284
解析UNIX目錄列表 286
不用解析列表而得到信息 288
遞歸下載 290
操縱服務器上的文件和目錄 293
刪除文件和目錄 293
建立目錄 294
移動和重命名文件 294
總結(jié) 294
第14章 數(shù)據(jù)庫客戶端 295
SQL和網(wǎng)絡(luò) 295
Python中的SQL 296
連接 297
PostgreSQL 298
MySQL 299
Jython zxJDBC 299
執(zhí)行命令 301
事務 302
事件執(zhí)行的性能 303
在結(jié)束前隱藏改變 303
重復指令 305
參數(shù)風格 305
使用executemany() 307
處理那些不適合executemany()的情況 308
得到數(shù)據(jù) 310
使用fetchall() 310
使用fetchmany() 311
使用fetchone() 312
閱讀Metadata 313
計算行數(shù) 314
以Dictionaries形式得到數(shù)據(jù) 315
使用數(shù)據(jù)類型 317
得到指定類型的數(shù)據(jù) 319
總結(jié) 319
第15章 SSL 321
理解網(wǎng)絡(luò)弱點 322
嗅探攻擊(Sniffing) 322
插入攻擊 323
刪除攻擊 323
重復攻擊 323
截獲Session 323
偽裝服務器(信息轉(zhuǎn)向) 324
妥協(xié)的服務器 324
人體工程學 324
使用SSL降低攻擊 324
認證遠程機器 325
理解Python中的SSL 326
使用內(nèi)置的SSL 326
使用OpenSSL 330
使用OpenSSL驗證服務器證書 331
取得根認證授權(quán)證書 332
驗證證書 332
總結(jié) 338
第16章 SocketServer 341
使用BaseHTTPServer 341
處理對于特殊文檔的請求 343
同時處理多個請求 346
SimpleHTTPServer 348
CGIHTTPServer 349
實現(xiàn)新協(xié)議 350
取得關(guān)于客戶端的信息 352
IPv6 352
總結(jié) 353
第17章 SimpleXMLRPCServer 355
SimpleXMLRPCServer基礎(chǔ) 356
測試您的服務器 358
提供函數(shù) 359
使用類的特性 361
使用DocXMLRPCServer 364
使用CGIXMLRPCRequestHandler 365
支持Multicall函數(shù) 367
總結(jié) 367
第18章 CGI 369
設(shè)置CGI 370
理解CGI 370
理解使用Python編寫CGI 371
取得環(huán)境信息 373
取得輸入 375
額外的URL成分 375
GET方法 378
POST方法 380
轉(zhuǎn)義特殊字符 383
處理一個字段的多個輸入 385
上傳文件 386
使用Cookies 388
Cookies的結(jié)構(gòu) 389
使用Cookies 390
總結(jié) 392
第19章 mod_python 393
理解為什么需要mod_python 393
安裝和配置mod_python 394
載入模塊 395
配置Apache目錄 396
修復配置問題 398
理解mod_python基礎(chǔ) 399
PythonHandler的角色 400
處理程序返回值 401
分派請求 402
處理輸入 405
附加的URL部分 405
GET方法 407
POST方法 410
轉(zhuǎn)義(Escaping) 412
理解解釋器實例 413
在mod_python中預建立處理程序 415
總結(jié) 415
第20章 Forking 419
理解進程 419
理解fork() 421
重復的文件描述符 422
Zombie進程 423
性能 424
Forking的第一步 424
Zombie程序 425
使用信號解決Zombie問題 426
使用輪詢(Polling)來解決Zombie問題 428
Forking服務器 430
鎖定 433
錯誤處理 438
總結(jié) 441
第21章 線程 443
在Python中使用線程 444
使用共享變量 446
安全線程 447
設(shè)法訪問共享的且缺乏的資源 450
避免死鎖 453
編寫含有線程的服務器 455
練習:使用線程的聊天服務器 457
使用線程池 457
編寫含有線程的客戶端 463
總結(jié) 467
第22章 網(wǎng)絡(luò)客戶端 469
決定是否使用異步I/O 470
使用異步通信 471
高級的服務器端使用 476
監(jiān)控多個master socket 480
在服務器上使用Twisted 485
總結(jié) 489
索引

本目錄推薦

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