资源简介
用python写的TCP聊天程序,有服务器,有客户端,可以多个客户端互相聊天,使用了多线程,wxpython做界面,数据库,面对对象等
如果要在一个电脑上运行多个客户端的话请把每个客户端的port字段改成不一样的
详情请看我的博客 https://blog.csdn.net/cytcyt768/article/details/88572085
代码片段和文件信息
import wx
import json
import _thread
import time
import socket
class ContentPanel(wx.SplitterWindow):
# parent为父类实例
def __init__(self parent logic contact = {“type“:11“id“:0“name“:“未知“}):
super(ContentPanel self).__init__(parentid = -1 style= wx.SP_LIVE_UPDATE | wx.SP_BORDER | wx.SP_3DSASH)
self.logicClient = logic
self.contact = contact
upper = wx.Panel(self)
lower = wx.Panel(self)
self.SplitHorizontally(upper lower -200)
self.SetMinimumPaneSize(120)
self.contact_name = wx.StaticText(upper -1 label = self.contact[“name“])
font = wx.Font(15 wx.FONTFAMILY_DEFAULT wx.FONTstyle_NORMAL wx.FONTWEIGHT_BOLD)
self.contact_name.SetFont(font)
self.content_text = wx.TextCtrl(upperstyle=wx.TE_MULTILINE | wx.TE_READONLY | wx.TE_RICH2 | wx.BORDER_NONE)
self.input_text = wx.TextCtrl(lowerstyle=wx.TE_MULTILINE | wx.BORDER_NONE)
self.input_text.SetFont(wx.Font(15 wx.FONTFAMILY_DEFAULT wx.FONTstyle_NORMAL wx.FONTWEIGHT_NORMAL))
ctrl_panel = wx.Panel(lower)
send_button = wx.Button(ctrl_panellabel=‘发送‘)
send_button.Bind(wx.EVT_BUTTONself.onclick_sendButton)
# boxSizer
upperbox = wx.BoxSizer(wx.VERTICAL)
upper.SetSizer(upperbox)
upperbox.Add(self.contact_nameproportion =0flag = wx.EXPAND | wx.RIGHT | wx.TOP border = 15)
upperbox.Add(self.content_textproportion = 1flag = wx.EXPAND | wx.RIGHT | wx.TOP border=15)
lowerbox = wx.BoxSizer(wx.VERTICAL)
lower.SetSizer(lowerbox)
lowerbox.Add(self.input_textproportion = 1flag = wx.EXPAND|wx.RIGHT|wx.BOTTOM border=15)
lowerbox.Add(ctrl_panelproportion = 0flag = wx.EXPAND|wx.RIGHT border=20)
# 设置联系人,相当于重新布置面板
def setContact(selfcontact={“type“:11 “id“:0 “name“:“未知“}):
self.contact = contact
self.contact_name.SetLabel(contact[“name“] + “(“ + str(contact[‘id‘]) + “)“)
# 显示消息
def showMessage(selftitletexttype = 0):
if type == 1:
titleColor = wx.Colour(00255)
elif type == 2:
titleColor = wx.Colour(00255)
else:
titleColor = wx.Colour(012864)
titleFont = wx.Font(11 wx.DEFAULT wx.NORMAL wx.NORMAL False)
textFont = wx.Font(14 wx.DEFAULT wx.NORMAL wx.NORMAL False)
self.content_text.SetDefaultstyle(wx.TextAttr(titleColorwx.NullColourtitleFont))
self.content_text.AppendText(title+‘\n‘)
self.content_text.SetDefaultstyle(wx.TextAttr(wx.BLACKwx.NullColourtextFont))
self.content_text.AppendText(text+‘\n‘)
self.content_text.SetDefaultstyle(wx.TextAttr(wx.BLACKwx.NullColourwx.Font(3 wx.DEFAULT wx.NORMAL wx.NORMAL False)))
self.content_text.AppendText(‘\n‘)
# 发送按钮
def O
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 13772 2019-03-15 08:50 Client.py
文件 15795 2019-03-16 12:59 Server.py
相关资源
- python实现SGBM图像匹配算法
- python实现灰度直方图均衡化
- scrapy_qunar_one
- Python学习全系列教程永久可用
- python简明教程.chm
- 抽奖大转盘python的图形化界面
- 双边滤波器实验报告及代码python
- python +MYSQL+HTML实现21蛋糕网上商城
- Python-直播答题助手自动检测出题搜索
- OpenCV入门教程+OpenCV官方教程中文版
- Python 串口工具源码+.exe文件
- Python开发的全栈股票系统.zip
- Python操作Excel表格并将其中部分数据写
- python书籍 PDF
- 利用python绘制散点图
- python+labview+No1.vi
- 老男孩python项目实战
- python源码制作whl文件.rar
- python3.5可用的scipy
- PYTHON3 经典50案例.pptx
- 计算机科学导论-python.pdf
- python模拟鼠标点击屏幕
- windows鼠标自动点击py脚本
- 鱼c小甲鱼零基础学python全套课后题和
- Python 练习题100道
- Practical Programming 2nd Edition
- wxPython Application Development Cookbook
- python 3.6
- Python 3.5.2 中文文档 互联网唯一CHM版本
- python3.5.2.chm官方文档
评论
共有 条评论