本篇内容介绍了“怎么用python实现简易聊天对话框”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
import tkinter as tk
from tkinter import scrolledtext
import socket
import threading
from datetime import datetime
def tcp_recv(sock):
while True:
str = sock.recv(1024).decode("utf-8")
show_info(str)
def send_func(sock):
str = send_msg.get("0.0", "end")
sock.send(str.encode("utf-8"))
show_info(str)
def show_info(str):
now = datetime.now()
s_time = now.strftime("%Y-%m-%d %H:%M:%S")
str = str.rstrip()
if len(str) == 0:
return -1
send_msg.delete("0.0", "end")
temp = s_time + "\n " + str + "\n"
show_msg.insert(tk.INSERT, "%s" % temp)
msFont = '微软雅黑' #字体
fontSize = 18 #字体大小
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect(("127.0.0.1",8888))
mainWindow = tk.Tk()
mainWindow.title("客户端")
mainWindow.minsize(400,400)
show_msg = scrolledtext.ScrolledText(mainWindow,font=(msFont,fontSize))
show_msg.place(width=400,height=250,x=0,y=0)
#show_msg.insert(tk.INSERT,"%s 已连接\n"%addr[0])
send_msg = scrolledtext.ScrolledText(mainWindow,font=(msFont,fontSize))
send_msg.place(width=400,height=140,x=0,y=260)
button_send = tk.Button( mainWindow, font=(msFont,fontSize),text = "发 送",bg="orange",fg="white",
command=lambda:send_func(sock))
button_send.place(width=100,height=40,x=300,y=360)
t = threading.Thread(target=tcp_recv,args=(sock,))
t.start()
tk.mainloop()
服务器代码:
import tkinter as tk
from tkinter import scrolledtext
import socket
import threading
from datetime import datetime
def tcp_recv(sock):
while True:
str = sock.recv(1024).decode("utf-8")
show_info(str)
def send_func(sock):
str = send_msg.get("0.0", "end")
sock.send(str.encode("utf-8"))
show_info(str)
def show_info(str):
now = datetime.now()
s_time = now.strftime("%Y-%m-%d %H:%M:%S")
str = str.rstrip()
if len(str) == 0:
return -1
send_msg.delete("0.0", "end")
temp = s_time + "\n " + str + "\n"
show_msg.insert(tk.INSERT, "%s" % temp)
msFont = '微软雅黑' #字体
fontSize = 18 #字体大小
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.bind(("127.0.0.1",8888))
sock.listen(5)
mainWindow = tk.Tk()
mainWindow.title("服务器")
mainWindow.minsize(400,400)
show_msg = scrolledtext.ScrolledText(mainWindow,font=(msFont,fontSize))
show_msg.place(width=400,height=250,x=0,y=0)
send_msg = scrolledtext.ScrolledText(mainWindow,font=(msFont,fontSize))
send_msg.place(width=400,height=140,x=0,y=260)
button_send = tk.Button( mainWindow, font=(msFont,fontSize),text = "发 送",bg="orange",fg="white",
command=lambda:send_func(s))
button_send.place(width=100,height=40,x=300,y=360)
s,addr = sock.accept()
t = threading.Thread(target=tcp_recv,args=(s,))
t.start()
tk.mainloop()
“怎么用python实现简易聊天对话框”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。