手机版
你好,游客 登录 注册 搜索
背景:
阅读新闻

基于UDP协议的密码验证

[日期:2018-08-20] 来源:Linux社区  作者:gdutcxh [字体: ]

利用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()

结果:
服务器监听

客户端接收返回信息并显示

服务器端显示客户端信息

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

本文永久更新链接地址https://www.linuxidc.com/Linux/2018-08/153608.htm

linux
相关资讯       UDP  UDP密码验证 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款