基於UDP協議的密碼驗證

利用Python實現socket編程
1、客戶端程序需完成功能:
1)從名爲’pswd.txt’的文件中讀取密碼。
2)把密碼發送到服務器程序。
3)顯示服務器程序的返回結果
2、服務器程序需完成功能:
1)接受來自客戶端程序發送的密碼。
2)顯示客戶端的socket信息(IP地址,端口號)
3)驗證密碼是否正確(正確的密碼爲“123456”)
3)密碼正確發送”correct”,否則返回”false”

客戶端程序:

# udpclient.py
from socket import *
file = 'E:\pswd.txt'
#讀取密碼文件並保存至passwd變量
with open(file,'r') as f:
    passwd = f.read()
f.close()

host = '127.0.0.1'  #客戶端IP
port = 13141        #客戶端端口
bufsize = 1024      #定義緩衝大小
addr = (host,port)
udpClient = socket(AF_INET,SOCK_DGRAM) #創建客戶端

passwd = passwd.encode(encoding="utf-8") #用utf-8的格式編碼
udpClient.sendto(passwd,addr)  #發送數據
response,addr = udpClient.recvfrom(bufsize) #接受數據和返回地址
response = response.decode(encoding='utf-8') #用utf-8的格式解碼
print(response,'from',addr) #顯示服務器的返回結果

udpClient.close() #關閉客戶端

服務器端程序

# udpserver.py
from socket import *

host = ''  #監聽所有的IP
port = 13141
bufsize = 1024
addr = (host,port)

udpServer = socket(AF_INET,SOCK_DGRAM)
udpServer.bind(addr) #開始監聽
while True:
    print('Waiting for connection...')
    passwd,addr = udpServer.recvfrom(bufsize) #接受數據和返回地址
    passwd=passwd.decode(encoding='utf-8')
#判斷密碼是否正確: 
    if passwd == '123456':
        response='correct'
    else:
        response='false'
    udpServer.sendto(response.encode(encoding='utf-8') ,addr)
    print('...recevied from and return to :',addr)
udpServer.close()

結果:
服務器監聽
基於UDP協議的密碼驗證
客戶端接收返回信息並顯示
基於UDP協議的密碼驗證
服務器端顯示客戶端信息
基於UDP協議的密碼驗證

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章