基于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协议的密码验证

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/dd334e0e017f06e87d50221fd926deb3.html