1. 程式人生 > >一個很low的登錄界面

一個很low的登錄界面

.so 服務 .com eat soc mman 變量賦值 lag 類型

import tkinter as tk
from tkinter import messagebox
import socket
def receive(name=None,password=None):
    sk = socket.socket()  # 創建客戶套接字
    sk.connect((192.168.13.142, 8898))  # 嘗試連接服務器
    send=name+"|"+password
    send1=send.encode("utf-8")
    sk.send(send1)
    ret = sk.recv(1024)  #
對話(發送/接收) ret1=ret.decode("utf-8") sk.close() return ret1 def denglu(): window = tk.Tk() window.title(歡迎登陸) window.geometry(400x250) canvas = tk.Canvas(window, height=100, width=200)#創建畫布 image_file = tk.PhotoImage(file=logo.png)#加載圖片文件 image = canvas.create_image(0,0, anchor=
nw, image=image_file)#將圖片置於畫布上 canvas.pack(side=top)#放置畫布(為上端) tk.Label(window, text=User name: ).place(x=50, y= 120)#創建一個`label`名為`User name: `置於坐標(50,150) tk.Label(window, text=Password: ).place(x=50, y= 150) var_usr_name = tk.StringVar()#定義變量 var_usr_name.set([email protected]
)#變量賦值‘[email protected] entry_usr_name = tk.Entry(window, textvariable=var_usr_name)#創建一個`entry`,顯示為變量`var_usr_name`即圖中的`[email protected]` entry_usr_name.place(x=160, y=120) var_usr_pwd = tk.StringVar() entry_usr_pwd = tk.Entry(window, textvariable=var_usr_pwd, show=*)#`show`這個參數將輸入的密碼變為`***`的形式 entry_usr_pwd.place(x=160, y=150) flag=0 def usr_login(): nonlocal flag if flag<3: usr_name = var_usr_name.get() usr_pwd = var_usr_pwd.get() sign_s=receive(str(usr_name),str(usr_pwd)) # sign_s=sign_s.decode("utf-8") if sign_s=="登陸成功": messagebox.showinfo(title=‘‘, message=登陸成功) flag=0 exit() else: flag += 1 messagebox.showinfo(title=‘‘, message=賬戶或密碼錯誤,剩余登錄次數為%s % (3 - flag)) if flag>=3: exit() btn_login = tk.Button(window, text=Login, command=usr_login)#定義一個`button`按鈕,名為`Login`,觸發命令為`usr_login` btn_login.place(x=160, y=180) window.mainloop() denglu()

客戶端

import socket
server = socket.socket()
server.bind((192.168.13.142,8001))
server.listen(5)
while True:
    conn,addr = server.accept()
    # 字節類型
    while True:
        data = conn.recv(1024) # 阻塞
        if data == bexit:
            break
        response = data + b SB
        conn.send(response)
    conn.close()

一個很low的登錄界面