1.socket模組
在網路程式設計中最基本的元件就是套接字(socket)
套接字包括:服務套接字,客戶機套接字
伺服器套接字建立後就監聽是否有客戶機套接字進行連線
客戶機只需要給出相關協議引數並對伺服器進行連線即可
伺服器的簡單的實現:
import socket
s=socket.socket()
host=socket.gethostname()
port=1234
s.bind((host,port))
s.listen(5)
while true:
c,addr=s.accept()
print(addr)
print(c)
print("got connection from %s"
%(str(addr)))
c.send(bytes("thank you for connecting",encoding='utf-8'))
input("按下任意鍵退出")
c.close()
與<
import socket
s=socket.socket()
host=socket.gethostname()
port=1234
s.connect((host,port))
print(s.recv(1024))
input("按下任意鍵退出")
客戶端**非常簡單,誓言時先開啟伺服器程式再開啟客戶端即可
2.urllib和urllib模組
這個模組厲害了 直接可以獲得網頁資料
import urllib.request
from pprint import pprint
webpage=urllib.request.urlopen("")
date=webpage.read()
date=date.decode("utf-8")
pprint(date)
3.socketserver
socketserver是眾多伺服器框架的基礎
包含四個基本的類:
針對tcp流套接字的tcpserver;
針對udp資料報套接字的udpserver
針對性不強的unixstreamserver和unixdataqramserver
基本流程:
每當伺服器收到乙個來自客戶端的連線請求,就會例項化乙個請求處理程式,並且它的各種處理方法會在處理時被呼叫,具體呼叫那乙個方法取決於伺服器和使用的處理程式類
socketserver中的其他類實現了對http伺服器的基本支援。
**如下
from socketserver import tcpserver,streamrequesthandler
class
handler
(streamrequesthandler):
defhandle
(self):
addr=self.request.getpeername()
print('got connection from %s'%(str(addr)))
self.wfile.write(bytes('thank you for connecting',encoding='utf-8'))
server=tcpserver(('',1234),handler)
server.serve_forever()
其中」就表示伺服器正在其上執行的主機名」
當客戶端有連線請求,handler類繼承於steamrequesthandler所以會被呼叫
handle函式在初始化函式中所以也會被呼叫,並進行連線等一系列操作
python網路程式設計 TCP網路程式設計
tcp程式設計 客戶端 import socket 1 套接字 tcp socket socket.socket socket.af inet,socket.sock stream 2 建立鏈結 tcp socket.connect 172.27.35.1 8080 3 傳送資訊 tcp socke...
python 網路程式設計
今天晚上學習了一下python的網路程式設計,實現了client向server傳送資料,server反饋資訊 python 3.3 版本 server from socket import class tcpserver object def init self,serverport self.se...
python網路程式設計
網路通訊是計算機之間的程序之間的通訊。tcp程式設計 tcp連線建立是雙向通道,客戶端與服務端都可以給對方傳送資料。建立tcp連線時,主動發起連線的叫客戶端,被動響應連線的叫服務端。建立乙個tcp的socket連線 用socket family,type 建立套接字獲得socket物件。family...