码迷,mamicode.com
首页 > 其他好文 > 详细

基于UDP协议的密码验证

时间:2018-05-07 21:09:40      阅读:620      评论:0      收藏:0      [点我收藏+]

标签:socket   python   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协议的密码验证

标签:socket   python   udp   

原文地址:http://blog.51cto.com/gdutcxh/2113717

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!