udp服務端 客戶端

2021-10-04 23:14:34 字數 2073 閱讀 7154

個數:2的16次方

埠是資料發出或接收的入口

埠的目的:通過埠號找到對應的程序,完成資料的通訊

著名埠0-1023

'''

這是建立了乙個基於udp協議的服務端

'''import socket

#todo 1.0 建立了乙個套接字,用來連線客戶端,傳送與接收資料

udp_server = socket.socket(family=socket.af_inet,

type

=socket.sock_dgram)

print

(udp_server)

# def __init__(self, family=af_inet, type=sock_stream, proto=0, fileno=none):

#family這個引數標誌著我們這個連線,基於網路,不需要改

#type這個引數用來標註的是連線方式:udp tcp

#todo 2.0 因為是伺服器,繫結ip與埠

udp_server.bind((''

,8080))

#埠繫結

# udp_server.bind((ip位址,埠))

#todo 3.0 等待客戶端傳送資料(請求資源)

while

true

:(data_bytes,address_info)

= udp_server.recvfrom(

1024

)#data資料是位元組流檔案

data_str = data_bytes.decode(

'gbk'

)print

(data_str)

print

(address_info)

#todo 4.0 處理客戶端的請求(拼接資源)

input_str =

input

('請輸入你需要傳送給客戶端的訊息'

)#todo 5.0 將客戶端需要的資料,傳送給客戶端

udp_server.sendto(input_str.encode(

'gbk'

),address_info)

#todo 6.0 將套接字關閉(釋放資源)

# udp_server.close()

import socket

#todo 1.0 建立乙個udp套接字

udp_client = socket.socket(family=socket.af_inet,

type

=socket.sock_dgram)

#todo 2.0 收發資訊

while

true

: data =

input

('請輸入需要傳送給客戶端的訊息'

) udp_client.sendto(data.encode(

'gbk'),

('192.168.137.1'

,8080))

#todo 3.0 接收服務端的訊息

(data,address_info)

= udp_client.recvfrom(

1024

)print

(data.decode(

'gbk'))

print

(address_info)

#todo 4.0 關閉套接字

#udp_client.close()

請求路徑:request url: 

請求方法:request method:get

網域名稱:host:www.baidu.com

其他的在request headers裡面

2、伺服器接到請求之後,會將瀏覽器需要的資料傳送回來,包括:

響應狀態碼:status code:200 ok

響應型別:content-type:text/html;charset=utf-8

其他的資料在response headers裡面

3、如果還需要其他的資料,重複上面的兩個流程

基於UDP的服務端 客戶端

udp套接字的特點 udp提供的是不可靠的傳輸服務。如果只考慮可靠性tcp要優於udp,但是udp的結構要比tcp更簡潔。udp不會傳送ack的應答資訊,也不會像seq那樣給資料分配序號。因此,udp效能有時比tcp高出很多。程式設計實現簡單。可靠性雖然不及tcp,但也不會像想象中那麼頻繁的資料損毀...

TCP以及UDP服務端和客戶端

tcp server.py from datetime import datetime import socket address localhost 6789 max size 1000 print starting the server at datetime.now print waiting...

Python UDP客戶端 服務端

udpclient.py coding utf 8 from socket import servername 127.0.0.1 伺服器位址,本例中使用一台遠端主機 serverport 12000 伺服器指定的埠 clientsocket socket af inet,sock dgram 建立...