《Python 程式設計》筆記(十三)

2021-07-16 12:51:48 字數 3072 閱讀 5046

grail是由guido van rossum編寫的網際網路瀏覽器。

一些流行的工具:

套接字層

協議層

協議常見功能

埠號python 模組

usenet 新聞組

119nntplib

ftp 資料(預設)

檔案傳送

20ftplib

ftp 控制

檔案傳送

21ftplib

smtp

傳送郵件

25smtplib

pop3

獲取郵件

110poplib

imap4

獲取郵件

143imaplib

finger

資訊79

無ssh

命令列22

無telnet

命令列23

telnetlib

python 網路庫模組

模組功能

socket, ssl

網路和ipc通訊支援(tcp/ip,udp等)

cgi伺服器端cgi指令碼支援:解析輸入流,轉義html文字等

urllib.request

從給定位址獲取網頁

urllib.parse

解析url字串不同的部分,可以轉義url

網路、檔案傳送、新聞組

根據**要求將資料儲存在客戶端,便於利用cookies實現自動登入等

poplib, imaplib, smtplib

郵件相關協議

telnetlib

telnet協議模組

html.parser,xml.*解析網頁

xdrlib, socket

對二進位制資料進行編碼,使其具有可移植性,便於傳輸

struct, pickle

對python物件進行編碼,使其稱為打包二進位制資料或序列化的位元組字串,便於傳輸

email.*通過標題附件和編碼解析和撰寫電子郵件

mimetypes

推測型別

uu, binhex, base64, binascii, quopri,email.*編碼和解碼以文字傳輸的二進位制資料(在電子郵件包中自動進行)

socketserver

針對一般網路伺服器的框架

基本的http伺服器部署

socket模組中包含的高階工具:

ssl.wrap_socket呼叫可以加密傳輸。

伺服器端程式編寫的一般步驟:

可以使用picklestruct模組序列化物件,然後進行傳輸處理,這樣也比較方便。但針對普通的字串,使用encodedecode方法也可以滿足了。

客戶端程式編寫的一般步驟:

完整的示例程式參見 echo/server.py 和 echo/client.py

最後,來看看使用multiprocessing模組來實現同樣的功能吧,事實上也非常簡單!完整示例**詳見 此處,關鍵**如下:

def

dispatcher

(server):

assert isinstance(server, socket)

while

true:

conn, addr = server.accept()

print('request from client:', addr, end=' ')

print('at', datetime.now())

multiprocessing.process(target=handle_request, args=(conn, )).start()

def

dispatcher

(server):

assert isinstance(server, socket)

while

true:

conn, addr = server.accept()

print('request from client:', addr, end=' ')

print('at', datetime.now())

thread.start_new(handle_request, (conn, ))

class

requesthandler

(socketserver.baserequesthandler):

defhandle

(self):

while

true:

data = self.request.recv(1024)

ifnot data:

break

self.request.send(data)

self.request.close()

defmain

():# 此處可以使用forkingtcpserver等,socketserver會為你處理程序管理的細節。

server = socketserver.threadingtcpserver(('', 2050), requesthandler)

server.serve_forever()

>>> s.makefile()

name=7

mode='r'

encoding='utf-8'>

sockfile = sock.makefile('r')

name = sockfile.readline()

Python學習筆記(十三)

模組包 if name main 軟體目錄結構規範 作業 atm 購物 程式 import 語句 import module1 module2 modulen 當我們使用import語句的時候,python直譯器通過自己的搜尋路徑 存在sys.path裡 進行搜尋from import 語句 fro...

TCP IP網路程式設計學習筆記 十三

io完成埠模型的實現要點 建立乙個io完成埠物件 簡稱cp物件 控制代碼 使用createiocompletionport 建立 使用wsarecv 或者wsasend 進行非同步io操作,操作完成後,系統自動啟用getqueuedcompletionstatus 函式,進而啟用某個執行緒去處理。注...

python基礎學習筆記(十三)

re模組包含對 正規表示式。本章會對 re模組主要特徵和正規表示式進行介紹。什麼是正規表示式 正規表示式是可以匹配文字片段的模式。最簡單的正規表示式就是普通字串,可以匹配其自身。換包話說,正規表示式 python 可以匹配字串 python 你可以用這種匹配行為搜尋文字中的模式,並且用計算後有值併發...