python網路提示 python異常及網路程式設計

2021-10-11 14:49:20 字數 2228 閱讀 1596

為什麼需要使用異常?

使用if作為錯誤處理機制時,無法窮舉所有的異常情況,而且在處理異常時處理**和業務**混合在一起,嚴重影響程式的可讀性。

使用raise語句自動引發異常。如果raise語句在try中,則會丟擲runtimeerror異常。如果raise在exception語句中,則會將exception中的異常丟擲。

python網路程式設計tcp,udp

網路程式設計,不管是使用tcp還是udp,都有socket程式包。

server = socket.socket(socket.af_inet,socket.sock_stewam) #建立伺服器套接字物件,第二個引數表示使用tcp

server.bind(('127.0.0.1',8000)) #建立的套接字物件繫結伺服器主機和埠

server.listen() #由於tcp是基於連線的協議,所以需要使用監聽

sock, addr = server.accept() #伺服器接受來自客戶端的連線

data = sock.recv(1024) #伺服器接受到客戶端傳送的訊息

sock.send('hello client'.encode()) #伺服器向客戶端傳送訊息

server.close() #伺服器關閉連線

sock.close() #連線物件關閉

client= socket.socket(socket.af_inet,socket.sock_stream) #建立客戶端套接字物件

client.connect(('127.0.0.1',8000)) #建立的套接字物件連線到伺服器上

client.send('hello server'.encode()) #客戶端向伺服器傳送資訊

client.recv(1024) #客戶端收到伺服器傳送的訊息

client.close() #通訊結束後,關閉客戶端的連線

server = socket.socket(socket.af_inet,socket.sock_dgram) #建立伺服器套接字物件,第二個引數表示使用udp協議

server.bind(('127.0.0.1',8000)) #建立的伺服器套接字物件繫結相應的位址和埠

data,addr=server.recvfrom(1024) #由於傳輸層使用udp協議,所以不需要監聽,只是在接收資訊時收到客戶端的位址和資訊

server.sendto('hello client'.encode(),addr) #根據收到的客戶端位址,再傳送資訊

server.close() #通訊結束,關閉伺服器物件

client= socket.socket(socket.af_inet,socket.sock_dgram) #建立客戶端套接字物件

client.sendto('hello server'.encode(),('127.0.0.1',8000)) #客戶端不需要連線到伺服器,只需在傳送資訊時指定相應的伺服器位址即可

client.recv(1024) #客戶端收到伺服器的資訊

client.close() #通訊結束關閉客戶端連線

http協議

http協議在應用層中使用。具有以下特點。

http協議需要請求和響應來完成通訊。

http是乙個無狀態的連線,所以引入了cookie,使得伺服器了解第二次連線的客戶端。

http協議的請求資源一般都是用url。

http請求中有各種方法,其中get,post方法使用頻率最高。get方法獲取資源,將各種引數加在url之後,post方法把請求放在請求體中,增加安全性。

http為持久連線,在伺服器響應的報文中,connection :keep-alive這個屬性使得下一次請求可以立刻連線,節約網路資源。

importurllib.requestimporturllib.parsedeftest_get():

req= urllib.request.request('',headers=headers)

resp=urllib.request.urlopen(req)print(resp.read().decode())deftest_post():

data=

data=urllib.parse.urlencode(data).encode()

req= urllib.request.request('login/userlogin',headers=headers,data=data)

resp=urllib.request.urlopen(req)print(resp.read().decode())

opencv dnn分類網路呼叫 python版

dnn測試使用示例,以分類網路為例實現。def load model onnx model net cv2.dnn.readnetfromonnx onnx model net.setpreferablebackend cv2.dnn.dnn backend cuda net.setpreferab...

python 提示錯誤 Python異常提示

一 在以前的 中已經看過異常。通常錯誤的 或輸入會引發異常。發生異常時,程式立即停止。下面的 通過嘗試將7除以0來產生 zerodivisionerror 異常。num1 7num2 0print num1 num2 顯示結果 zerodivisionerror division by zero 不...

vue 網路異常提示

在一般的專案中,我們的大部分異常都是由後端傳送過來的,前端只需要列印這些異常就行了。但是有一些情況除外,那就是網路異常 當有這些網路異常的時候,這些請求就沒有傳送到後端,所以後端是不能夠傳送這些異常資訊的,這個時候我們就需要在前端給使用者這些提示 在一般的正規專案中,我們一般都會在前端寫乙個請求 攔...