采用python socket 实现的简易登录模块

采用python socket 实现的简易登录模块

1.客户端


import socket
sk=socket.socket()
address=("49.140.79.30",2008)
conn=sk.connect(address)
while True:
    i=input("注册请输入1,登陆请输入0\n")
    print(i)
     if i=="1":
            while True:
                sk.sendall(bytes(1))
                name=input("请输入用户名\n")
                password=input("请输入密码\n")
                password2=input("请再次输入密码\n")
                if password!=password2:
                    print("两次密码不一致")
                    continue
                
                sk.sendall(bytes(name.encode("utf-8")))
                sk.sendall(bytes(password.encode("utf-8")))
                if sk.recv(1024)==bytes(200): 
                    print("恭喜你注册成功\n")
                    sk.close()
                    break
    if i=="0":
        sk=socket.socket()
        address=("49.140.79.30",2008)
        conn=sk.connect(address)
        while True:
            sk.sendall(bytes(2))
            name2=input("请输入用户名\n")
            password3=input("请输入密码\n")
            
            
            
            sk.sendall(bytes(name2.encode("utf-8")))
            
            if sk.recv(1024)!=bytes(password3.encode("utf-8")):
                print("用户名或者密码错误!请重新输入\n")
                continue
            if sk.recv(1024)==bytes(200):
                
                print("恭喜你成功登陆!这里是黄片拿去吧么么哒!\n")
                break
            print("登陆结束")
    else:
        print("caonima")                                    



    

服务器端

dic_id_password={}
import socket
sk=socket.socket()
address=("49.140.79.30",2008)
sk.bind(address)
sk.listen(12)
print(dic_id_password)
while True:
    conn,addr=sk.accept()
    a=conn.recv(1024)
    if a==bytes(1):
        name=str(conn.recv(1024),encoding='UTF-8')
        
        password=str(conn.recv(1024),encoding='UTF-8')
        dic_id_password[name]=password
        conn.sendall(bytes(200))
    
    if a==bytes(2):
        name2=str(conn.recv(1024),encoding='UTF-8')
        password2=dic_id_password[name2]
        conn.sendall(bytes(password2.encode("utf-8")))
        
        
        conn.sendall(bytes(200))
    print(dic_id_password)

总结:原来sk.sendall()方法只能传输bytes信息啊~我在动手操作之前,都一直以为它传的是str信息。甚至以为字典也能直接传,真是太天真了。
这只是我软件里的一个小模块,以后整合进去。

猜你喜欢

转载自blog.csdn.net/qq_26233899/article/details/84102711