定 價:39 元
叢書名:大數(shù)據(jù)與人工智能技術叢書
- 作者:趙宏 包廣斌 馬棟林
- 出版時間:2018/8/1
- ISBN:9787302504832
- 出 版 社:清華大學出版社
- 中圖法分類:TP316.85
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書選用各項性能指標優(yōu)良的Ubuntu作為Linux系統(tǒng)實例,以Python為編程語言,理論結合實踐,系統(tǒng)地講解網(wǎng)絡各層次的功能、所包含的常用協(xié)議、數(shù)據(jù)報文格式,并給出實際操作的程序實例。本書包括Linux系統(tǒng)介紹、Python語言基礎、TCP/IP協(xié)議簇、Socket原理、進程和線程、網(wǎng)絡應用程序實例、Web應用程序開發(fā)等內容。本書內容也適用于其他版本的Linux。
本書可作為普通高等院校信息類專業(yè)本科生和研究生教材,也可作為廣大Linux用戶、網(wǎng)絡管理員、程序員的自學用書和參考手冊。
《Linux網(wǎng)絡編程(Python)》立足開源Linux系統(tǒng),選用系統(tǒng)運維的常用語言Python闡述TCP/IP協(xié)議簇、Socket等編程原理,講解并例示HTTP、FTP、E-mail、Web APP、Web框架等系統(tǒng)運維實例,并結合多線程和數(shù)據(jù)庫技術完善與增強應用實例的功能。本書全部代碼可在GITHUB下載。
前言
Linux系統(tǒng)與互聯(lián)網(wǎng)相伴而生,共同成長,成為現(xiàn)代信息技術高速發(fā)展的重要支撐和驅動力。Python作為一種開源、跨平臺、面向對象的新型計算機程序設計語言,語法簡潔,語義清晰,有豐富、強大的庫的支持,廣泛應用在網(wǎng)絡編程、科學計算、人工智能等各個領域。兩者的結合能夠使讀者快速理解基礎理論,掌握實踐技能,提高學習和工作的效率。
本書選用Ubuntu Desktop為實踐平臺,以Python語言為編程工具,針對互聯(lián)網(wǎng)所使用的TCP/IP協(xié)議簇進行分層介紹和解析,并給出實際操作的程序實例。
全書共分為7章。第1章介紹Linux的歷史、特點、組成、常見發(fā)行版本以及Linux常用的各種安裝方式,由馬棟林編寫。第2章講解Python語言的特點、開發(fā)環(huán)境安裝、數(shù)據(jù)類型、語法規(guī)則、語句、函數(shù)、模塊、類、對象、異常、文件等內容,由趙宏編寫。第3章分層講解TCP/IP各層主要協(xié)議、數(shù)據(jù)報文格式、層間數(shù)據(jù)交換規(guī)則、常見網(wǎng)絡應用與各層協(xié)議的對應、程序實例等內容,由包廣斌編寫。第4章講解Socket原理、SOCK_STREAM、SOCK_DGRAM、SOCK_RAW等內容,并通過程序實例演示Socket在C/S結構編程和網(wǎng)絡嗅探中的實際應用,由趙宏和馬棟林編寫。第5章講解多進程和多線程技術在網(wǎng)絡編程中的應用,通過實例對比多進程與多線程實現(xiàn)方案的異同,并介紹了利用socketserver編寫多進程和多線程程序的方法,最后通過GUI聊天室程序實例說明了多進程和多線程編程技術的實際應用,由包廣斌和趙宏編寫。第6章講解網(wǎng)頁內容獲取、訪問FTP服務器、訪問DNS、收發(fā)Email、獲取DHCP信息等實用程序的編寫方法與過程,這些實例能夠讓讀者進一步理解網(wǎng)絡理論和工具軟件的運行機制,由趙宏和包廣斌編寫。第7章介紹Python開發(fā)Web應用程序的方法,講解WSGI工作原理,以流行的Web開發(fā)框架Django為例,演示W(wǎng)eb應用程序開發(fā)工程,由趙宏和馬棟林編寫。
本書在編寫過程中,得到蘭州理工大學計算機與通信學院和信息中心各位老師的支持。碩士研究生韓澤宇、蔣家俊、張浩和王孝通幫助調試本書部分代碼。
本書的編寫受到蘭州理工大學教學研究項目和CERNET下一代互聯(lián)網(wǎng)技術項目(NGII20160311,NGII20160112)的資助。
因時間倉促,不足在所難免,請大家批評指正,讀者可通過zhaoh@lut.edu.cn或594286500@qq.com與作者聯(lián)系,也可以加入本書的QQ群643116956進行討論。
為方便教學,作者開發(fā)了與本書相配套的多媒體課件、課后習題答案和程序代碼,讀者可掃描封底課件二維碼下載或者向編者索取。
作者
2018年6月于蘭州理工大學
目錄
第1章Linux系統(tǒng)介紹
1.1Linux的誕生
1.2Linux的特點
1.3Linux的組成
1.4Linux的應用
1.5常見Linux發(fā)行版本
1.6Linux的安裝
1.6.1常用的安裝方式
1.6.2安裝前的準備
1.6.3虛擬機安裝Linux
1.6.4多操作系統(tǒng)的安裝
1.7本章小結
習題
第2章Python語言基礎
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復數(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關鍵字參數(shù)
2.5.5命名關鍵字參數(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本章小結
習題
第3章TCP/IP協(xié)議簇
3.1TCP/IP協(xié)議簇介紹
3.2鏈路層
3.3網(wǎng)絡層
3.3.1IPv4
3.3.2IPv6
3.3.3網(wǎng)絡層協(xié)議
3.3.4獲取計算機IP地址實例
3.3.5獲取局域網(wǎng)網(wǎng)關地址實例
3.4傳輸層
3.4.1UDP
3.4.2TCP
3.4.3主機收發(fā)數(shù)據(jù)統(tǒng)計信息程序實例
3.5應用層
3.5.1HTTP
3.5.2HTTPS
3.5.3FTP
3.5.4DNS
3.5.5SMTP
3.5.6POP3
3.5.7DHCP
3.6本章小結
習題
第4章Socket
4.1Socket介紹
4.2SOCK_STREAM
4.2.1字符串轉換實例
4.2.2文件下載實例
4.2.3掃描主機端口實例
4.3SOCK_DGRAM
4.3.1獲取服務器CPU使用情況實例
4.3.2獲取服務器內存使用情況實例
4.4SOCK_RAW
4.4.1ICMP報文
4.4.2ICMP報文校驗和計算
4.4.3數(shù)據(jù)轉換為bytes格式
4.4.4探測主機是否在線實例
4.4.5網(wǎng)絡嗅探實例
4.5本章小結
習題
第5章進程與線程
5.1進程與線程介紹
5.2多進程編程
5.2.1多進程文件下載服務實例
5.2.2進程池掃描主機端口實例
5.2.3多進程返回服務器負載情況實例
5.3多線程編程
5.3.1多線程文件下載服務實例
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服務器端程序
5.5.3客戶端程序
5.5.4程序運行結果
5.6本章小結
習題
第6章網(wǎng)絡應用程序實例
6.1網(wǎng)頁內容獲取
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服務器
6.2.1搭建FTP服務器
6.2.2訪問FTP服務器的常用函數(shù)
6.2.3訪問FTP服務器程序實例
6.3訪問DNS
6.3.1DNS記錄類型
6.3.2訪問DNS程序實例
6.4收發(fā)Email
6.4.1設置QQ郵箱授權碼
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信息程序實例
6.6本章小結
習題
第7章Web應用程序開發(fā)
7.1WSGI
7.2Django
7.2.1Django安裝與配置
7.2.2SQLite3數(shù)據(jù)庫
7.2.3向客戶端回應簡單信息
7.2.4向客戶端回應HTML文件
7.2.5模板標簽
7.2.6框架實例
7.3本章小結
習題
參考文獻