python UDP 資料報協議

2022-08-28 12:24:14 字數 2546 閱讀 4148

基於udp協議通訊的套接字

服務端

1

from socket import *

23 server = socket(af_inet, sock_dgram) #

sock_dgram=>資料報協議

4 server.bind(('

127.0.0.1

', 8080))56

print('

start....')

7while

true:

8 data, client_addr = server.recvfrom(1024) #

(b'hello', ('127.0.0.1', 49318))

9server.sendto(data.upper(), client_addr)

1011 server.close()

客戶端

1

from socket import *

23 client = socket(af_inet, sock_dgram) #

sock_dgram=>資料報協議45

while

true:

6 msg = input('

>>:

').strip()

7 client.sendto(msg.encode('

utf-8

'), ('

127.0.0.1

', 8080))

8 data, server_addr = client.recvfrom(1024)

9print

(data)

1011 client.close()

資料報協議的特點1

當傳送的資料報大於接收資料報的緩衝區大小時:

在windows系統: 接收端會丟擲異常

在linux系統: 接收端不會丟擲異常, 會丟棄掉多餘的資料

服務端

1

from socket import *

23 server = socket(af_inet, sock_dgram) #

sock_dgram=>資料報協議

4 server.bind(('

127.0.0.1

', 8081))

56 server.recvfrom(1)

>>>oserror: [winerror 10040] 乙個在資料報套接字上傳送的訊息大於內部訊息緩衝區或其他一些網路限制,或該使用者用於接收資料報的緩衝區比資料報小。

客戶端

1

from socket import *

23 client = socket(af_inet, sock_dgram) #

sock_dgram=>資料報協議

45 client.sendto(b'

hello

', ('

127.0.0.1

', 8081))

資料報協議的特點2

udp協議沒有粘包問題

ud協議能夠穩定傳輸資料的最大資料量為512bytes

服務端

1

from socket import *

23 server = socket(af_inet, sock_dgram) #

sock_dgram=>資料報協議

4 server.bind(('

127.0.0.1

', 8081))

56 data1 = server.recvfrom(1024)

7print('

第一次接收:

', data1)

8 data2 = server.recvfrom(1024)

9print('

第二次接收:

', data2)

10 data3 = server.recvfrom(1024)

11print('

第三次接收:

', data3)

>>>第一次接收: (b'hello', ('127.0.0.1', 55249))

>>>第二次接收: (b'world', ('127.0.0.1', 55249))

>>>第三次接收: (b'egon', ('127.0.0.1', 55249))

客戶端

1

from socket import *

23 client = socket(af_inet, sock_dgram) #

sock_dgram=>資料報協議

45 client.sendto(b'

hello

', ('

127.0.0.1

', 8081))

6 client.sendto(b'

world

', ('

127.0.0.1

', 8081))

7 client.sendto(b'

egon

', ('

127.0.0.1

', 8081))

使用者資料報協議 UDP

udp 簡述 udp只在ip 的資料報服務之上增加了很少一點的功能,即埠的功能和差錯檢測的功能。udp 的主要特點 udp是無連線的 即傳送資料之前不需要建立連線。udp使用盡最大努力交付 即不保證可靠交付,同時也不使用擁塞控制。udp沒有擁塞控制,很適合多 通訊的要求。udp是面向報文的 udp ...

使用者資料報協議UDP

udp概述 使用者資料報協議udp只在ip的資料報服務上增加了兩個兩個共能。分別是埠功能 有了埠,運輸層就能進行復用和分用 和差錯檢測功能。雖然udp使用者資料報只能提供不可靠的交付,但是在某些方面尤其特殊的優勢 1.udp是無連線的,即傳送資料之前不需要建立連線 當然傳送資料結束時也沒有連線可以釋...

使用者資料報協議UDP

一 udp協議概述 使用者資料報協議 user datagram protocol,縮寫為 udp 又稱使用者資料報文協議,是乙個簡單的面向資料報的運輸協議。在 tcp ip 模型中,udp 為網路層以上和應用層以下提供了乙個簡單的介面。udp 只提供資料的不可靠傳遞,它一旦把應用程式發給網路層的資...