網路程式設計:套接字基於UDP的應用
阿新 • • 發佈:2021-01-03
模擬通訊,進行訊息的收發
【1】初版server端
from socket import *
print("伺服器已啟動")
HOST = '0.0.0.0'
PORT = 8888
ADDR = (HOST, PORT)
# 建立套接字
sock = socket(AF_INET, SOCK_DGRAM)
# 繫結地址
sock.bind(ADDR)
# 訊息收發
while True:
data, addr = sock.recvfrom(1024)
print("Receive from %s:%s" % (addr, data.decode()))
sock.sendto( "收到訊息".encode(), addr)
#上面的while迴圈是死迴圈,所以這句不會執行。
# 所以無法訪問 This code is unreachable.
sock.close()
【1】初版client端
from socket import *
import sys
#命令列輸入伺服器地址
if len(sys.argv) < 3:
print('''
argv is error !!
start as
python3 udp_client.py 127.0.0.1 8888
''')
raise
HOST = sys.argv[1]
PORT = int(sys.argv[2])
ADDR = (HOST,PORT)
#建立套接字
sockfd = socket(AF_INET,SOCK_DGRAM)
while True:
data = input("訊息:")
if not data:
break
sockfd.sendto(data.encode(),ADDR)
data,addr = sockfd.recvfrom(1024)
print("從服務端收到:",data.decode())
sockfd.close()