首页 > 编程语言 > 详细

python_socket登陆验证_明文

时间:2020-06-02 23:25:54      阅读:73      评论:0      收藏:0      [点我收藏+]
client.py
import socket
import struct


sk=socket.socket()
sk.connect((‘127.0.0.1‘,9005))

while True:
    username=input("请输入用户名: ")
    password=input("请输入密码: ")
    blen=struct.pack("i",len(username.encode(‘utf-8‘)))
    sk.send(blen)
    sk.send(username.encode(‘utf-8‘))
    sk.send(password.encode(‘utf-8‘))
    if ‘Q‘ in [username.upper(),password.upper()]:  # 先 send 再判断,客户端主动发起断开
        break
    else:
        answer=sk.recv(1024).decode("utf-8")
        if bool(answer==‘True‘):  # 从字符串的‘True‘转为 布尔类型的True
            print("验证通过")
        else:
            print("用户名或密码错误")
sk.close()

server.py
import struct
import socket

sk=socket.socket()
sk.bind(("127.0.0.1",9005))
sk.listen()

while True:
    conn,_ = sk.accept()
    while True:
        blen=struct.unpack(‘i‘,conn.recv(4))[0]
        username=conn.recv(blen).decode(‘utf-8‘)
        password=conn.recv(1024).decode(‘utf-8‘)
        print(username,password)
        if ‘Q‘ in [username.upper(),password.upper()]:
            break
        else:
            with open("userinfo", ‘r‘) as f:
                for line in f.readlines():
                    if username==line.strip().split("|")[0] and password==line.strip().split("|")[1]:
                        conn.send(‘True‘.encode(‘utf-8‘))
                        break
                else:
                    conn.send(‘False‘.encode(‘utf-8‘))

    conn.close()
    print("断开与当前客户端的连接,等待其他客户端的连接")

sk.close()

python_socket登陆验证_明文

原文:https://www.cnblogs.com/Collin-pxy/p/13034393.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!