2023年10月1日 星期日

用Python實作UDP傳送和接收程式

參考文章:用Python實作UDP通訊程式

客戶端程式:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

PORT = 1060
network = '192.168.176.1'
message = '國立虎尾科技大學電機資訊學院有電機、光電、資訊、電子等系所'

s.sendto(message.encode('utf-8'), (network, PORT))
data, address = s.recvfrom(65535)
print('UDP Client 接收訊息來自 {}:\n{}'.format(address, data.decode('utf-8')))

伺服端程式:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import socket

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

PORT = 1060
network = '192.168.176.1'
message = '國立虎尾科技大學電機資訊學院歡迎您'

s.bind((network, PORT))
print('聆聽訊息來自 ', s.getsockname()) while True: data, address = s.recvfrom(65535) print('UDP Server 接收訊息從 {}:\n{}'.format(address, data.decode('utf-8'))) s.sendto(message.encode('utf-8'), address)

測試步驟如下:
1.先開啟IDLE程式,選擇File->New File,把伺服端程式貼上,選擇Run執行,記得存檔。
2.再開啟另一個IDLE程式,選擇File->New File,把客戶端程式貼上,選擇Run執行,記得存檔。

執行結果:
1.伺服端

2.客戶端


沒有留言:

張貼留言