资源简介

用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

评论

共有 条评论