实时聊天室开发过程文档
一、采用了 pyqt 和 thinker 两个前端模块
开发过程:先使用 qt designer 制作出界面,再使用 pyuic 把界面转为对应的 python 代码,但当所有的界面制作完成想要编写逻辑时遇到问题。
问题描述:在前期制作登录界面的过程中,因为考虑到编码规范,想法 GUI 和逻辑交互分离,但发现某点击事件传递参数和做出响应时遇到问题,准确来说应该是 GUI 阻塞之类的与 socket 编程无关的问题,并且许久未经解决,故改用 thinker。
如图所示:因为 GUI 一直等待参数的传递,处于阻塞状图,只能强制杀死进程,可惜当时截图忘记存了,不然可以放到这里。
解决办法:那就只能 GUI 和逻辑代码混在一起了,避开 pyqt,使用更为轻量级的 thinker
二、参数传递问题
问题描述:启动服务器后客户端理应自动启动
解决办法:引入 OS 模块,使用 os.system(command)来完成对 client.py 的启动,如下图所示:
三、自动启动的 client 和手动启动的 client 接收的参数不同
问题描述:自动启动的 client 默认主机号是本机,只需要输入 Port;手动启动的 client 需要手动输入 IP 和 Port
解决方法:因为自动启动的 client 可以知道 server 的 IP 地址,所以不需要再输入 IP,而通过 clientGUI.py 启动的 client 不知道 server 的 IP 地址,所以需要手动输入。自动运行的是 client.py 而手动运行的是 clientGUI.py client.py
c++
clientGUI.py
输入的 port 不存在
问题描述:输入的 port 上 server 没有运行
解决办法:自动启动时不会报错,client 不会成功启动,手动启动时 client 会报错,client 不会成功启动
参考文献
- 基于.NET自定义控件的社区网站系统研究与实现(武汉理工大学·刘亚)
- 企业内部即时通讯系统的设计与实现(内蒙古大学·王慧平)
- 基于B/S架构的酷跑社区系统的设计与实现(内蒙古大学·张晓乐)
- 面向中小企业的即时消息系统(山东大学·孙巍)
- 南洋学院网络新闻发布系统(电子科技大学·诸国华)
- 基于B/S架构的酷跑社区系统的设计与实现(内蒙古大学·张晓乐)
- 面向企业用户的即时通讯系统的设计与实现(哈尔滨工业大学·王雷寒)
- 面向企业用户的即时通讯系统的设计与实现(哈尔滨工业大学·王雷寒)
- 面向企业管理平台会话系统后端的设计与实现(南京大学·顾必成)
- 基于Struts+JSP的SNS网站系统的设计与实现(吉林大学·王雷)
- 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航)
- 面向企业管理平台会话系统后端的设计与实现(南京大学·顾必成)
- 基于Web文语转换通讯系统的设计与实现(华东师范大学·李伟)
- WEB QQ——基于JMS技术并集成在服务器端的即时通讯系统(成都理工大学·李健)
- 基于Openfire的即时通信服务端系统设计与实现(华中科技大学·陈理兵)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码向导 ,原文地址:https://bishedaima.com/yuanma/36105.html