zoukankan      html  css  js  c++  java
  • python_socket登陆验证_明文

    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()
    
  • 相关阅读:
    lambda 和 iterable
    使用Jenkins部署Python项目
    python下selenium自动化测试自我实践
    【其它】数学学科编码
    【其它】音阶中的数学
    【数理统计基础】 06
    【数理统计基础】 05
    【数理统计基础】 04
    【数理统计基础】 03
    【数理统计基础】 02
  • 原文地址:https://www.cnblogs.com/Collin-pxy/p/13034393.html
Copyright © 2011-2022 走看看