python網路程式設計

2021-08-26 23:38:50 字數 1918 閱讀 1571

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...