设为首页 加入收藏

TOP

基于UDP协议的密码验证
2018-08-22 06:07:56 】 浏览:128
Tags:基于 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()


结果:
服务器监听



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



服务器端显示客户端信息



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python网络编程实现TCP和UDP连接 下一篇shell脚本编程基础教程

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目