
613
19
客戶端網路協定模組
Python 的標準程式庫提供了數個模組,來簡化 Internet(網際網路)協
定的使用,特別是在客戶端的(或一些簡單的伺服器)。近來,Python
Package Index(
https://pypi.python.org/pypi
,PyPI)提供了更多的這種套
件。這些第三方的套件支援非常多樣的協定,而有幾個提供的 API 比標準
程式庫的還要好。當你需要使用標準程式庫沒有的協定,或者標準程式庫
提供的方式你不滿意,請一定要搜尋 PyPI,你很有可能在那裡找到更好的
解決方式。
在本章中,我們涵蓋能為某些網路協定用途提供滿意解法的一些標準程式
庫套件,特別是簡單的協定:如果你編寫的程式碼不需要第三方套件,那
麼你的應用程式或程式庫就很容易安裝到其他機器上。我們也提到了幾個
第三方套件,它們涵蓋了標準程式庫中沒有包含的重要網路協定。本章沒
有涵蓋使用非同步程式設計(asynchronous programming)做法的第三方套
件:要找那種套件,請參閱前面的「asyncio 模組(僅限 v3)」。
對於特定的、很常會用到的 HTTP
1
客戶端和其他的網路資源(例如匿名
的 FTP 站台)用例,這種最好透過 URL
2
存取的情況,標準程式庫只提
供了複雜、不相容(v2 與 v3 之間)的支援。因此,對於這種情況,我們
1 HTTP,也就是 Hypertext Transfer Protocol,是 World Wide Web 的核心協定:每個 web
伺服器和瀏覽器都會使用它,而它也成為了今日 ...