• day30日期06-09 【TCP登录】


    1.两个文件客户端和服务端2.依照文件中的账号和加密过的密码,比对客户端和服务端的
    用户信息一致性3.如果一致显示登录成功,否则断开连接

    新建一个文件当成数据库,然后对密码进行加密
    客户端输入通过把字典形式的数据分割用户名和密码和数据库中的用户名想比较,先通过json转换成字符串再转换成字节流,然后通过状态码相比较

    服务端

    import hashlib
    import socket
    import json

    def get_md5(user,pwd):
    hs=hashlib.md5("xiama".encode())
    hs.update(pwd.encode())
    return hs.hexdigest()
    # print(get_md5("duoduo","12345"))#c26313119e10ecd8b024228e988aa87a

    sk=socket.socket()
    sk.bind(("127.0.0.1",9004))
    sk.listen()
    conn,addr=sk.accept()
    #接收数据
    msg=conn.recv(1024).decode()
    dicc=json.loads(msg)
    print(dicc)#{'username': 'xiaoma', 'password': '123456', 'operat': 'login'}

    sign1=True
    with open("userinfo.txt",mode="r",encoding="utf-8") as fp:
    for i in fp:
    user1,pwd1=i.strip().split(":")
    print(user1,pwd1)

    if user1==dicc["username"] and pwd1==get_md5(user,dic["password"]):
    res={"code":1}
    res_msg=json.dumps(res).encode()
    conn.send(res_msg)
    sign1=False
    break
    if sign1==True:
    res={"code":0}
    res_msg=json.dumps(res).encode()
    conn.send(res_msg)

    conn.close()
    sk.close()

    # xiama:123456
    # duoduo:12345

    客户端
    import socket
    import json
    sk=socket.socket()

    sk.connect(("127.0.0.1",9004))
    #收发数据的逻辑
    user=input("请输入您的用户名:")
    pwd=input("请输入您的密码:")
    #发送一个字典,json是语言交流,传输。pickle是存储
    #json(元组,字符串,int dict,none所有语言都能识别)转换为字符串,再转化为字节流
    #用户名和密码发过去的来意,operate
    dic={"username":user,"password":pwd,"operat":"login"}
    res=json.dumps(dic)
    byte_msg=res.encode()
    sk.send(byte_msg)
    #接收服务端发送过来的数据
    res_msg1=sk.recv(1024).decode()
    dic_code=json.loads(res_msg1)
    if dic_code["code"]:
    print("恭喜您登录成功")
    else:
    print("抱歉登录失败了")


    #两个send有可能粘包
    # sk.send(b)

    sk.close()



  • 相关阅读:
    调起MT096的配置过程
    数据库不能用delete---index空间不足
    cics下任务的停止
    StrTrim()---对string不可以随便用
    update语句
    makefile--Unfound symbol
    文件的读写权限
    makefile--$@
    C++--类的头文件和文件名要一致吗
    Django模板(Templages)
  • 原文地址:https://www.cnblogs.com/bonnyxinxin/p/13140127.html
Copyright © 2020-2023  润新知