前言
以下代码可以实现一个简易的python聊天室功能,在图形界面中我们输入消息,点击发送可以在服务器端与客户端显示
服务器端代码
import tkinter
import tkinter.font as tkFont
import socket
import threading
import time
import sys
class ServerUI():
local="127.0.0.1"
port=5505
global serverSock
flag=False
#初始化类的相关属性的构造函数
def __init__(self):
self.root=tkinter.Tk()
self.root.title("Python 在线聊天-服务器端V1.0")
#窗口面板,用四个frame面板布局
self.frame=[tkinter.Frame(),tkinter.Frame(),tkinter.Frame(),tkinter.Frame()]
#显示消息Text右边的滚动条
self.chatTextScrollBar=tkinter.Scrollbar(self.frame[0])
self.chatTextScrollBar.pack(side=tkinter.RIGHT,fill=tkinter.Y)
#显示消息Text,并绑定上面的滚动条
ft=tkFont.Font(family='Fixdsys',size=11)
self.chatText=tkinter.Listbox(self.frame[0],width=70,height=18,font=ft)
self.chatText['yscrollcommand']=self.chatTextScrollBar.set
self.chatText.pack(expand=1,fill=tkinter.BOTH)
self.chatTextScrollBar['command']=self.chatText.yview()
self.frame[0].pack(expand=1,fill=tkinter.BOTH)
#标签,分开消息显示Text和消息输入Text
label=tkinter.Label(self.frame[1],height=2)
label.pack(fill=tkinter.BOTH)
self.frame[1].pack(expand=1,fill=tkinter.BOTH)
#输入消息Text的滚动条
self.inputTextScrollBar=tkinter.Scrollbar(self.frame[2])
self.inputTextScrollBar.pack(side=tkinter.RIGHT,fill=tkinter.Y)
#输入消息Text,并于滚动条绑定
ft=tkFont.Font(family='Fixdsys',size=11)
self.inputText=tkinter.Text(self.frame[2],width=70,height=8,font=ft)
self.inputText['yscrollcommand']=self.inputTextScrollBar.set
self.inputText.pack(expand=1,fill=tkinter.BOTH)
self.inputTextScrollBar['command']=self.chatText.yview()
self