Python網(wǎng)絡(luò)編程(Linux)
定 價:39 元
叢書名:大數(shù)據(jù)與人工智能技術(shù)叢書
- 作者:趙宏 包廣斌 馬棟林
- 出版時間:2018/8/1
- ISBN:9787302504832
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP316.85
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書選用各項性能指標優(yōu)良的Ubuntu作為Linux系統(tǒng)實例,以Python為編程語言,理論結(jié)合實踐,系統(tǒng)地講解網(wǎng)絡(luò)各層次的功能、所包含的常用協(xié)議、數(shù)據(jù)報文格式,并給出實際操作的程序?qū)嵗。本書包括Linux系統(tǒng)介紹、Python語言基礎(chǔ)、TCP/IP協(xié)議簇、Socket原理、進程和線程、網(wǎng)絡(luò)應(yīng)用程序?qū)嵗eb應(yīng)用程序開發(fā)等內(nèi)容。本書內(nèi)容也適用于其他版本的Linux。
本書可作為普通高等院校信息類專業(yè)本科生和研究生教材,也可作為廣大Linux用戶、網(wǎng)絡(luò)管理員、程序員的自學(xué)用書和參考手冊。
《Linux網(wǎng)絡(luò)編程(Python)》立足開源Linux系統(tǒng),選用系統(tǒng)運維的常用語言Python闡述TCP/IP協(xié)議簇、Socket等編程原理,講解并例示HTTP、FTP、E-mail、Web APP、Web框架等系統(tǒng)運維實例,并結(jié)合多線程和數(shù)據(jù)庫技術(shù)完善與增強應(yīng)用實例的功能。本書全部代碼可在GITHUB下載。
前言
Linux系統(tǒng)與互聯(lián)網(wǎng)相伴而生,共同成長,成為現(xiàn)代信息技術(shù)高速發(fā)展的重要支撐和驅(qū)動力。Python作為一種開源、跨平臺、面向?qū)ο蟮男滦陀嬎銠C程序設(shè)計語言,語法簡潔,語義清晰,有豐富、強大的庫的支持,廣泛應(yīng)用在網(wǎng)絡(luò)編程、科學(xué)計算、人工智能等各個領(lǐng)域。兩者的結(jié)合能夠使讀者快速理解基礎(chǔ)理論,掌握實踐技能,提高學(xué)習(xí)和工作的效率。
本書選用Ubuntu Desktop為實踐平臺,以Python語言為編程工具,針對互聯(lián)網(wǎng)所使用的TCP/IP協(xié)議簇進行分層介紹和解析,并給出實際操作的程序?qū)嵗?br />
全書共分為7章。第1章介紹Linux的歷史、特點、組成、常見發(fā)行版本以及Linux常用的各種安裝方式,由馬棟林編寫。第2章講解Python語言的特點、開發(fā)環(huán)境安裝、數(shù)據(jù)類型、語法規(guī)則、語句、函數(shù)、模塊、類、對象、異常、文件等內(nèi)容,由趙宏編寫。第3章分層講解TCP/IP各層主要協(xié)議、數(shù)據(jù)報文格式、層間數(shù)據(jù)交換規(guī)則、常見網(wǎng)絡(luò)應(yīng)用與各層協(xié)議的對應(yīng)、程序?qū)嵗葍?nèi)容,由包廣斌編寫。第4章講解Socket原理、SOCK_STREAM、SOCK_DGRAM、SOCK_RAW等內(nèi)容,并通過程序?qū)嵗菔維ocket在C/S結(jié)構(gòu)編程和網(wǎng)絡(luò)嗅探中的實際應(yīng)用,由趙宏和馬棟林編寫。第5章講解多進程和多線程技術(shù)在網(wǎng)絡(luò)編程中的應(yīng)用,通過實例對比多進程與多線程實現(xiàn)方案的異同,并介紹了利用socketserver編寫多進程和多線程程序的方法,最后通過GUI聊天室程序?qū)嵗f明了多進程和多線程編程技術(shù)的實際應(yīng)用,由包廣斌和趙宏編寫。第6章講解網(wǎng)頁內(nèi)容獲取、訪問FTP服務(wù)器、訪問DNS、收發(fā)Email、獲取DHCP信息等實用程序的編寫方法與過程,這些實例能夠讓讀者進一步理解網(wǎng)絡(luò)理論和工具軟件的運行機制,由趙宏和包廣斌編寫。第7章介紹Python開發(fā)Web應(yīng)用程序的方法,講解WSGI工作原理,以流行的Web開發(fā)框架Django為例,演示W(wǎng)eb應(yīng)用程序開發(fā)工程,由趙宏和馬棟林編寫。
本書在編寫過程中,得到蘭州理工大學(xué)計算機與通信學(xué)院和信息中心各位老師的支持。碩士研究生韓澤宇、蔣家俊、張浩和王孝通幫助調(diào)試本書部分代碼。
本書的編寫受到蘭州理工大學(xué)教學(xué)研究項目和CERNET下一代互聯(lián)網(wǎng)技術(shù)項目(NGII20160311,NGII20160112)的資助。
因時間倉促,不足在所難免,請大家批評指正,讀者可通過zhaoh@lut.edu.cn或594286500@qq.com與作者聯(lián)系,也可以加入本書的QQ群643116956進行討論。
為方便教學(xué),作者開發(fā)了與本書相配套的多媒體課件、課后習(xí)題答案和程序代碼,讀者可掃描封底課件二維碼下載或者向編者索取。
作者
2018年6月于蘭州理工大學(xué)
目錄
第1章Linux系統(tǒng)介紹
1.1Linux的誕生
1.2Linux的特點
1.3Linux的組成
1.4Linux的應(yīng)用
1.5常見Linux發(fā)行版本
1.6Linux的安裝
1.6.1常用的安裝方式
1.6.2安裝前的準備
1.6.3虛擬機安裝Linux
1.6.4多操作系統(tǒng)的安裝
1.7本章小結(jié)
習(xí)題
第2章Python語言基礎(chǔ)
2.1Python語言簡介
2.2Python語言解釋器安裝
2.2.1在線安裝
2.2.2下載安裝
2.2.3管理多個Python版本
2.2.4安裝Python的IDE環(huán)境
2.2.5測試Python IDE
2.3數(shù)據(jù)類型
2.3.1布爾型
2.3.2整型
2.3.3浮點型
2.3.4復(fù)數(shù)型
2.3.5字符串型
2.3.6列表型
2.3.7元組型
2.3.8字典型
2.3.9日期型
2.3.10數(shù)組型
2.4語法規(guī)則與語句
2.4.1輸出與輸入
2.4.2條件判斷
2.4.3循環(huán)
2.5函數(shù)與模塊
2.5.1自定義函數(shù)
2.5.2默認參數(shù)
2.5.3可變參數(shù)
2.5.4關(guān)鍵字參數(shù)
2.5.5命名關(guān)鍵字參數(shù)
2.5.6參數(shù)組合規(guī)則
2.5.7實參與形參
2.5.8遞歸
2.5.9模塊
2.6類與對象
2.6.1類的定義與實例化對象
2.6.2類屬性與實例屬性
2.6.3屬性封裝
2.6.4類的繼承
2.6.5多態(tài)
2.7異常和異常處理
2.7.1異常捕獲與處理
2.7.2拋出異常
2.8文件
2.8.1讀寫文本文件
2.8.2讀寫二進制文件
2.8.3讀寫JSON
2.8.4讀寫StringIO
2.8.5讀寫B(tài)ytesIO
2.9本章小結(jié)
習(xí)題
第3章TCP/IP協(xié)議簇
3.1TCP/IP協(xié)議簇介紹
3.2鏈路層
3.3網(wǎng)絡(luò)層
3.3.1IPv4
3.3.2IPv6
3.3.3網(wǎng)絡(luò)層協(xié)議
3.3.4獲取計算機IP地址實例
3.3.5獲取局域網(wǎng)網(wǎng)關(guān)地址實例
3.4傳輸層
3.4.1UDP
3.4.2TCP
3.4.3主機收發(fā)數(shù)據(jù)統(tǒng)計信息程序?qū)嵗?br />
3.5應(yīng)用層
3.5.1HTTP
3.5.2HTTPS
3.5.3FTP
3.5.4DNS
3.5.5SMTP
3.5.6POP3
3.5.7DHCP
3.6本章小結(jié)
習(xí)題
第4章Socket
4.1Socket介紹
4.2SOCK_STREAM
4.2.1字符串轉(zhuǎn)換實例
4.2.2文件下載實例
4.2.3掃描主機端口實例
4.3SOCK_DGRAM
4.3.1獲取服務(wù)器CPU使用情況實例
4.3.2獲取服務(wù)器內(nèi)存使用情況實例
4.4SOCK_RAW
4.4.1ICMP報文
4.4.2ICMP報文校驗和計算
4.4.3數(shù)據(jù)轉(zhuǎn)換為bytes格式
4.4.4探測主機是否在線實例
4.4.5網(wǎng)絡(luò)嗅探實例
4.5本章小結(jié)
習(xí)題
第5章進程與線程
5.1進程與線程介紹
5.2多進程編程
5.2.1多進程文件下載服務(wù)實例
5.2.2進程池掃描主機端口實例
5.2.3多進程返回服務(wù)器負載情況實例
5.3多線程編程
5.3.1多線程文件下載服務(wù)實例
5.3.2線程池掃描主機端口實例
5.4socketserver
5.4.1多進程TCP實例
5.4.2多進程UDP實例
5.4.3多線程TCP與多線程UDP
5.5GUI聊天室實例
5.5.1Tkinter
5.5.2服務(wù)器端程序
5.5.3客戶端程序
5.5.4程序運行結(jié)果
5.6本章小結(jié)
習(xí)題
第6章網(wǎng)絡(luò)應(yīng)用程序?qū)嵗?br />
6.1網(wǎng)頁內(nèi)容獲取
6.1.1通過API獲取天氣數(shù)據(jù)實例
6.1.2正則表達式
6.1.3通過爬蟲獲取天氣數(shù)據(jù)實例
6.1.4通過爬蟲下載網(wǎng)頁中的圖片實例
6.1.5爬蟲獲取需要驗證用戶身份的網(wǎng)站信息實例
6.1.6爬蟲獲取使用HTTPS網(wǎng)站信息實例
6.2訪問FTP服務(wù)器
6.2.1搭建FTP服務(wù)器
6.2.2訪問FTP服務(wù)器的常用函數(shù)
6.2.3訪問FTP服務(wù)器程序?qū)嵗?br />
6.3訪問DNS
6.3.1DNS記錄類型
6.3.2訪問DNS程序?qū)嵗?br />
6.4收發(fā)Email
6.4.1設(shè)置QQ郵箱授權(quán)碼
6.4.2簡單郵件發(fā)送實例
6.4.3HTML格式郵件發(fā)送實例
6.4.4帶附件的郵件發(fā)送實例
6.4.5帶圖片的郵件發(fā)送實例
6.4.6郵件接收實例
6.5獲取DHCP信息
6.5.1Scapy簡介及安裝
6.5.2獲取DHCP信息程序?qū)嵗?br />
6.6本章小結(jié)
習(xí)題
第7章Web應(yīng)用程序開發(fā)
7.1WSGI
7.2Django
7.2.1Django安裝與配置
7.2.2SQLite3數(shù)據(jù)庫
7.2.3向客戶端回應(yīng)簡單信息
7.2.4向客戶端回應(yīng)HTML文件
7.2.5模板標簽
7.2.6框架實例
7.3本章小結(jié)
習(xí)題
參考文獻