资源简介
用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
相关资源
- Instant Pygame for Python Game Development How
- Biopython Tutorial
- Think Python 2nd
- 一个小小的表白程序(python)
- Python课堂笔记(高淇400集第一季)
- 二级考试python试题12套(包括选择题和
- pywin32_python3.6_64位
- python+ selenium教程
- PycURL(Windows7/Win32)Python2.7安装包 P
- 英文原版-Scientific Computing with Python
- 7.图像风格迁移 基于深度学习 pyt
- 基于Python的学生管理系统
- A Byte of Python(简明Python教程)(第
- Python实例174946
- Python 人脸识别
- Python 人事管理系统
- 基于python-flask的个人博客系统
- 计算机视觉应用开发流程
- python 调用sftp断点续传文件
- python socket游戏
- 基于Python爬虫爬取天气预报信息
- python函数编程和讲解
- Python开发的个人博客
- 基于python的三层神经网络模型搭建
- python实现自动操作windows应用
- python人脸识别(opencv)
- python 绘图(方形、线条、圆形)
- python疫情卡UN管控
- python 连连看小游戏源码
- 基于PyQt5的视频播放器设计
评论
共有 条评论