Python網(wǎng)絡(luò)編程(Linux)
定 價(jià):39 元
叢書名:大數(shù)據(jù)與人工智能技術(shù)叢書
- 作者:趙宏 包廣斌 馬棟林
- 出版時(shí)間:2018/8/1
- ISBN:9787302504832
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP316.85
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書選用各項(xiàng)性能指標(biāo)優(yōu)良的Ubuntu作為Linux系統(tǒng)實(shí)例,以Python為編程語言,理論結(jié)合實(shí)踐,系統(tǒng)地講解網(wǎng)絡(luò)各層次的功能、所包含的常用協(xié)議、數(shù)據(jù)報(bào)文格式,并給出實(shí)際操作的程序?qū)嵗。本書包括Linux系統(tǒng)介紹、Python語言基礎(chǔ)、TCP/IP協(xié)議簇、Socket原理、進(jìn)程和線程、網(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)運(yùn)維的常用語言Python闡述TCP/IP協(xié)議簇、Socket等編程原理,講解并例示HTTP、FTP、E-mail、Web APP、Web框架等系統(tǒng)運(yùn)維實(shí)例,并結(jié)合多線程和數(shù)據(jù)庫技術(shù)完善與增強(qiáng)應(yīng)用實(shí)例的功能。本書全部代碼可在GITHUB下載。
前言
Linux系統(tǒng)與互聯(lián)網(wǎng)相伴而生,共同成長,成為現(xiàn)代信息技術(shù)高速發(fā)展的重要支撐和驅(qū)動(dòng)力。Python作為一種開源、跨平臺、面向?qū)ο蟮男滦陀?jì)算機(jī)程序設(shè)計(jì)語言,語法簡潔,語義清晰,有豐富、強(qiáng)大的庫的支持,廣泛應(yīng)用在網(wǎng)絡(luò)編程、科學(xué)計(jì)算、人工智能等各個(gè)領(lǐng)域。兩者的結(jié)合能夠使讀者快速理解基礎(chǔ)理論,掌握實(shí)踐技能,提高學(xué)習(xí)和工作的效率。
本書選用Ubuntu Desktop為實(shí)踐平臺,以Python語言為編程工具,針對互聯(lián)網(wǎng)所使用的TCP/IP協(xié)議簇進(jìn)行分層介紹和解析,并給出實(shí)際操作的程序?qū)嵗?br />
全書共分為7章。第1章介紹Linux的歷史、特點(diǎn)、組成、常見發(fā)行版本以及Linux常用的各種安裝方式,由馬棟林編寫。第2章講解Python語言的特點(diǎn)、開發(fā)環(huán)境安裝、數(shù)據(jù)類型、語法規(guī)則、語句、函數(shù)、模塊、類、對象、異常、文件等內(nèi)容,由趙宏編寫。第3章分層講解TCP/IP各層主要協(xié)議、數(shù)據(jù)報(bào)文格式、層間數(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ò)嗅探中的實(shí)際應(yīng)用,由趙宏和馬棟林編寫。第5章講解多進(jìn)程和多線程技術(shù)在網(wǎng)絡(luò)編程中的應(yīng)用,通過實(shí)例對比多進(jìn)程與多線程實(shí)現(xiàn)方案的異同,并介紹了利用socketserver編寫多進(jìn)程和多線程程序的方法,最后通過GUI聊天室程序?qū)嵗f明了多進(jìn)程和多線程編程技術(shù)的實(shí)際應(yīng)用,由包廣斌和趙宏編寫。第6章講解網(wǎng)頁內(nèi)容獲取、訪問FTP服務(wù)器、訪問DNS、收發(fā)Email、獲取DHCP信息等實(shí)用程序的編寫方法與過程,這些實(shí)例能夠讓讀者進(jìn)一步理解網(wǎng)絡(luò)理論和工具軟件的運(yùn)行機(jī)制,由趙宏和包廣斌編寫。第7章介紹Python開發(fā)Web應(yīng)用程序的方法,講解WSGI工作原理,以流行的Web開發(fā)框架Django為例,演示W(wǎng)eb應(yīng)用程序開發(fā)工程,由趙宏和馬棟林編寫。
本書在編寫過程中,得到蘭州理工大學(xué)計(jì)算機(jī)與通信學(xué)院和信息中心各位老師的支持。碩士研究生韓澤宇、蔣家俊、張浩和王孝通幫助調(diào)試本書部分代碼。
本書的編寫受到蘭州理工大學(xué)教學(xué)研究項(xiàng)目和CERNET下一代互聯(lián)網(wǎng)技術(shù)項(xiàng)目(NGII20160311,NGII20160112)的資助。
因時(shí)間倉促,不足在所難免,請大家批評指正,讀者可通過zhaoh@lut.edu.cn或594286500@qq.com與作者聯(lián)系,也可以加入本書的QQ群643116956進(jìn)行討論。
為方便教學(xué),作者開發(fā)了與本書相配套的多媒體課件、課后習(xí)題答案和程序代碼,讀者可掃描封底課件二維碼下載或者向編者索取。
作者
2018年6月于蘭州理工大學(xué)
目錄
第1章Linux系統(tǒng)介紹
1.1Linux的誕生
1.2Linux的特點(diǎn)
1.3Linux的組成
1.4Linux的應(yīng)用
1.5常見Linux發(fā)行版本
1.6Linux的安裝
1.6.1常用的安裝方式
1.6.2安裝前的準(zhǔn)備
1.6.3虛擬機(jī)安裝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管理多個(gè)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浮點(diǎn)型
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默認(rèn)參數(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實(shí)參與形參
2.5.8遞歸
2.5.9模塊
2.6類與對象
2.6.1類的定義與實(shí)例化對象
2.6.2類屬性與實(shí)例屬性
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讀寫二進(jìn)制文件
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獲取計(jì)算機(jī)IP地址實(shí)例
3.3.5獲取局域網(wǎng)網(wǎng)關(guān)地址實(shí)例
3.4傳輸層
3.4.1UDP
3.4.2TCP
3.4.3主機(jī)收發(fā)數(shù)據(jù)統(tǒng)計(jì)信息程序?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)換實(shí)例
4.2.2文件下載實(shí)例
4.2.3掃描主機(jī)端口實(shí)例
4.3SOCK_DGRAM
4.3.1獲取服務(wù)器CPU使用情況實(shí)例
4.3.2獲取服務(wù)器內(nèi)存使用情況實(shí)例
4.4SOCK_RAW
4.4.1ICMP報(bào)文
4.4.2ICMP報(bào)文校驗(yàn)和計(jì)算
4.4.3數(shù)據(jù)轉(zhuǎn)換為bytes格式
4.4.4探測主機(jī)是否在線實(shí)例
4.4.5網(wǎng)絡(luò)嗅探實(shí)例
4.5本章小結(jié)
習(xí)題
第5章進(jìn)程與線程
5.1進(jìn)程與線程介紹
5.2多進(jìn)程編程
5.2.1多進(jìn)程文件下載服務(wù)實(shí)例
5.2.2進(jìn)程池掃描主機(jī)端口實(shí)例
5.2.3多進(jìn)程返回服務(wù)器負(fù)載情況實(shí)例
5.3多線程編程
5.3.1多線程文件下載服務(wù)實(shí)例
5.3.2線程池掃描主機(jī)端口實(shí)例
5.4socketserver
5.4.1多進(jìn)程TCP實(shí)例
5.4.2多進(jìn)程UDP實(shí)例
5.4.3多線程TCP與多線程UDP
5.5GUI聊天室實(shí)例
5.5.1Tkinter
5.5.2服務(wù)器端程序
5.5.3客戶端程序
5.5.4程序運(yùn)行結(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ù)實(shí)例
6.1.2正則表達(dá)式
6.1.3通過爬蟲獲取天氣數(shù)據(jù)實(shí)例
6.1.4通過爬蟲下載網(wǎng)頁中的圖片實(shí)例
6.1.5爬蟲獲取需要驗(yàn)證用戶身份的網(wǎng)站信息實(shí)例
6.1.6爬蟲獲取使用HTTPS網(wǎng)站信息實(shí)例
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ā)送實(shí)例
6.4.3HTML格式郵件發(fā)送實(shí)例
6.4.4帶附件的郵件發(fā)送實(shí)例
6.4.5帶圖片的郵件發(fā)送實(shí)例
6.4.6郵件接收實(shí)例
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模板標(biāo)簽
7.2.6框架實(shí)例
7.3本章小結(jié)
習(xí)題
參考文獻(xiàn)