今天在之前socket 通信的基础上,使用tpython 自带的tkinter构建了简单的聊天工具,界面相当简陋,只能在局域网下实现双方通信。
平台
- windows10
- python 3.6.5
代码
其实就两个程序,TCPserver.py 和 TCPclient.py,分别实现服务端和客户端的聊天界面,先运行服务端,再运行客户端,客户端运行之后需要输入服务端的ip,本地运行的话使用环回地址即可。
from socket import *
import tkinter as tk
import tkinter.scrolledtext as tst
import time
import tkinter.messagebox
import threading
class Application(tk.Frame):
def __init__(self,master):
tk.Frame.__init__(self,master)
self.grid()
self.createWidgets()
def createWidgets(self):
#显示聊天窗口
self.textEdit=tst.ScrolledText(self,width=50,height=15)
self.textEdit.grid(row=0,column=0,rowspan=1,columnspan=4)
#定义标签,改变字体颜色
self.textEdit.tag_config('server',foreground='red')
self.textEdit.tag_config('guest',foreground='blue')
#编辑窗口
self.inputText=tk.Text(self,width=40,height=5)
self.inputText.grid(row=1,column=0,columnspan=1)
#定义快捷键,按下回车即可发送消息
self.inputText.bind("<KeyPress-Return>",self.textSendReturn)
#发送按钮
self.btnSend=tk.Button(self,text='send',command=self.textSend)
self.btnSend.grid(row=1,column=3)
#开启一个线程用于接收消息并显示在聊天窗口
t=threading.Thread(target=self.getInfo)
t.start()
def textSend(self):
#获取Text的所有内容
str=self.inputText.get('1.0','end-1c')
if str!="" :