udp協議特點:
1.無連線。服務端與客戶端傳輸資料之前不需要進行連線,且沒有超時重發等機制,只是把資料通過網路傳送出去。也正是因為此特點,所以基於udp協議的socket的客戶端在啟動之前不需要先啟動服務端。
2.不可靠。資料在本地通過網路發出之後,udp協議會立即清除本地的快取,即使對方沒有收到該資料,也不做任何補救措施。
3.資料報協議。
**示例:
1import
socket
2 server =socket.socket(socket.af_inet,socket.sock_dgram)
3'''
41.udp協議是資料報協議,因此不會產生位元組流,不像tcp一樣是位元組流協議,故不會發生粘包現象。56
3.udp協議對應一發一收,因此不像tcp那樣要把連線掛起,更不用監聽,只要始終處於接收客戶端即可。
7'''
8 ip_port = ('
127.0.0.1
',8899)
9server.bind(ip_port)
10while
true:
11 data_bytes,client_addr = server.recvfrom(1024)
12 server.sendto(data_bytes,client_addr)
1import
socket
2 client =socket.socket(socket.af_inet,socket.sock_dgram)
3 ip_port = ('
127.0.0.1
',8899)
4while
true:
5 msg=input('
>>>:')
6 client.sendto(msg.encode('
utf-8
'),ip_port)
7 data_bytes,server_addr = client.recvfrom(1024)
8print(data_bytes.decode('
utf-8
'))
注意:基於udp協議的客戶端可以開啟多個程序,表面上實現了併發,但同一時刻只能允許乙個客戶端與服務端通訊,因此基於udp協議的socket並沒有實現併發。
基於UDP協議的socket程式設計
一 socket概述 1.socket一般被稱為 套接字 網路上的兩個程式通過乙個雙向的通訊連線實現資料的交換,這個連線的一端就叫做socket。2.建立網路通訊連線至少需要乙個埠號 socket socket利用網路之間的通訊設施實現程序通訊,但它對通訊設施的細節不關心,只要通訊設施能夠提供足夠的...
基於Socket的UDP和TCP協議
一 概述 tcp 傳輸控制協議 和udp 使用者資料報協議 是網路體系結構tcp ip模型中傳輸層一層中的兩個不同的通訊協議。tcp 傳輸控制協議,一種面向連線的協議,給使用者程序提供可靠的全雙工的位元組流,tcp套介面是位元組流套介面 stream socket 的一種。udp 使用者資料報協議。...
基於UDP協議的Socket網路程式設計
一 基於udp協議的socket網路程式設計流程 採用 udp 套接字方式實現c s的通訊程式由客戶端和伺服器端兩部分組成。伺服器端程序依次按以下步驟進行 1 呼叫socket 建立乙個資料報套接字 2 呼叫 bind 把伺服器位址繫結在該套接字上 3 呼叫recvform 等待客戶程序發來的請求,...