udp協議和socketserver模組

2022-07-28 17:36:29 字數 2460 閱讀 5481

#基於udp協議通訊的套接字

# 資料報協議

# 乙個recvfrom對應乙個sendto 一一對應 無粘包產生

# 服務端:

# import socket

# server=socket.socket(socket.af_inet,socket.sock_dgram)

# server.bind(("127.0.0.1",8080))

# while true:

# date,mag=server.recvfrom(1024)

# print(date)

# server.sendto(date.upper(),mag)

# server.close

## 客戶端

# import socket

# client=socket.socket(socket.af_inet,socket.sock_dgram)

# while true:

# res=input(">>").strip()

# client.sendto(res.encode("utf-8"),("127.0.0.1",8080))

# date,server_addr=client.recvfrom(1024)

# print(date)

# client.close()

##tcp協議的優缺點:(流式協議)

# 優點:傳輸資料可靠

# 缺點:傳輸效率慢

#udp協議的優缺點:(資料報協議)

# 優點:傳輸資料的效率高

# 缺點:資料容易丟失 可靠性低

# socketserver模組的使用

# 基於tcp協議通訊,僅更改服務端即可

# tcp協議併發的socketserver模板:

# import socketserver

# 自定義類用來處理通訊迴圈

# class mytcphanler(socketserver.baserequesthandler):

# def handle(self):

# while true:

# try:

# data=self.request.recv(1024)#request相當於建立連線

# if len(data)==0:break

# print("----->收到客戶訊息",data)

# self.request.send(data.upper())

# except connectionerror:

# break

# self.request.close()

# pass

# if __name__ == '__main__':

# server=socketserver.threadingtcpserver(("127.0.0.1",8080),mytcphanler)

# server.serve_forever() #連線迴圈

# 基於udp協議併發的socketserver模板:

# 服務端:

# import socketserver

# # 自定義類用來處理通訊迴圈

# class myudphanler(socketserver.baserequesthandler):

# def handle(self):

# data,sock=self.request

# sock.sendto(data.upper(),self.client_address)

# if __name__ == '__main__':

# server=socketserver.threadingudpserver(("127.0.0.1",8080),myudphanler)

# server.serve_forever() #連線迴圈

#什麼是程序

#程序的概念:起源於作業系統

#正在進行(執行)的程式

#程序是乙個包含程式執行所需的所有資源的單位

#在只有乙個cpu的情況下

#是因為有多道技術

#記憶體被分為多個區域 存放不同的應用程式

#當乙個應用程式遇到了i/o操作時 炒作系統會將cpu非陪給其他的應用程式使用

#切換的時間非常短 使用者是感覺不到的

#特點:

#乙個作業系統中可以同時存在多個程序

#內部使用了多道技術 可以快速的在不同的應用程式間切換 給使用者的感覺就像是在同時執行

#程序是乙個包含程式執行所需的所有資源的單位

TCP協議和UDP協議

前面我們學習了網路的7層模型,其中談到傳輸層的相關協議有tcp transmission control protocol 傳輸控制協議 和udp user datagram protocol 使用者資料報協議 一 tcp協議 tcp transmission control protocol 是一...

TCP協議和UDP協議

tcp transfer control protocol 是面向連線的,所謂面向連線,就是當計算機雙方通訊時必需經過先建立連線,然後傳送資料,最後拆除連線三個過程。tcp在建立連線時又分三步走 第一步,是請求端 客戶端 傳送乙個包含syn即同步 synchronize 標誌的tcp報文,syn同步...

TCP協議和UDP協議

區別 面向連線vs無連線 tcp建立乙個連線需要3次握手ip資料報,斷開連線需要4次握手。另外斷開連線時發起方可能進入time wait狀態長達數分鐘 視系統設定,windows一般為120秒 在此狀態下連線 埠 無法被釋放。udp不需要建立連線,可以直接發起。可靠vs不可靠 tcp利用握手 ack...