Python網路編程

來源:互聯網
上載者:User

標籤:逾時   div   串連   服務端   傳回值   包含   erro   smtp   綁定   

Python提供兩個層級訪問的網路服務:

  • 低層級的網路服務支援基本的Socket,它提供了標準的BSD Sockets API,可以訪問底層作業系統Socket介面的全部方法。
  • 進階別的網路服務模組SocketServer,它提供了伺服器中心類,可以簡化網路伺服器的開發。
Socket
函數 描述
s.bind() 綁定地址到通訊端,在AF_INET下以元組(host,port)的形式表示地址
s.listen() 開始TCP監聽。backlog指定在拒絕串連之前,作業系統可以掛起的最大串連數量。該值至少為1
s.accept() 被動接受TCP用戶端串連,(阻塞式)等待串連的到來
s.connect() 主動初始化TCP伺服器串連,一般address的格式為元組(hostname,port),如果串連出錯,返回socket.error錯誤
s.recv() 接收TCP資料,資料以字串形式返回,bufsize指定要接收的最大資料量,flag提供有關訊息的其他資訊
s.send()

發送TCP資料,將string中的資料發送到串連的通訊端。傳回值是要發送的位元組數量,該數量可能小於string的位元組大小

s.sendall() 完整發送TCP資料,將string中的資料發送到串連的通訊端,在返回之前會嘗試發送所有資料,成功,返回None,失敗則拋出異常
s.recvfrom() 接收UDP資料,與recv()類似,但是傳回值是(data,address)。其中data是包含接收資料的字串,address是發送資料的通訊端地址
s.sendto() 發送UDP資料,將資料發送到通訊端,address是形式為(ipaddr,port)的元組,指定遠程地址,傳回值是發送的位元組數。
s.close() 關閉通訊端
s.getpeername() 返回串連通訊端的遠程地址,傳回值通常是元組(ipaddr,port)。
s.getsockname() 返回通訊端自己的地址
s.setsockopt(level,optname,value) 設定給定通訊端選項的值
s.getsockopt(level,optname,[,buflen]) 返回通訊端選項的值
s.settimeout(timeout) 設定通訊端操作的逾時期,timeout是一個浮點數,單位是秒。值為None表示沒有逾時期。一般,逾時期應該在剛建立通訊端時設定,因為它們可能用於串連的操作
s.gettimeout() 返回當前逾時期的值,單位是秒。如果沒有設定逾時期,則返回None
s.fineno() 返回通訊端的檔案描述符
s.setblocking(flag) 如果flag為0,則將通訊端設定為非阻塞模式,否則將通訊端設定為阻塞模式(預設值)。非阻塞模式下,如果調用recv()沒有發現任何資料,或send()調用無法立即發送資料,那麼將引起socket.error異常
s.makefile() 建立一個與該通訊端相關的檔案
服務端樣本
 1 #!/usr/bin/python 2 import socket 3 import sys 4  5 # 建立Server Socket對象 6 serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 7  8 # 擷取本地主機名稱 9 host = socket.gethostname()10 port = 999911 # 綁定監聽12 serversocket.bind((host,port))13 # 設定最大串連數14 serversocket.listen(5)15 while True:16     clientsocket,addr = serversocket.accept()17     msg = ‘Hello World‘18     clientsocket.send(msg.encode(‘utf-8‘))19     clientsocket.close()
網路模組
協議 功能 連接埠號碼 模組
HTTP 網頁訪問 80 httplib,urllib,xmlrpclib
NNTP 閱讀和張貼新聞文章 119 nntplib
FTP 檔案傳輸 20 ftplib,urllib
SMTP 發送郵件 25 smtplib
POP3 內送郵件 110 poplib
IMAP4 擷取郵件 143 imaplib
Telent 命令列 23 telnetlib
Gopher 資訊尋找 70 gopherlib,urllib

Python網路編程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.