django-flask医生开药处方药品进销存管理系统vue_0m3u8

核心内容摘要

闭眼入!8个AI论文网站深度测评:继续教育毕业论文写作必备工具推荐
DeepSeek-R1-Distill-Llama-8B创意写作:温度与top_p搭配技巧

手把手教学:用Ollama部署Google翻译模型translategemma

IM 即时通讯软件1 引言

1

项目概述本项目时北京理工大学计算机学院小学期实训项目。

让我们练习了 Linux 环境下的 socket 编程会使用终端指令来操作 Linux同时熟悉 QT 在项目进程中构建 UI 和封装数据的作用锻炼面向对象的编程思想熟悉了 QT 的基本操作和语法了解了 QTCP 在网络通信中的意义。

2 需求分析通信是人们生活中的一部分而对于多人协作的工程而言沟通和交流更是必要的而网络通信作为其中最为便利的方式已经是越来越多的公司在做工程时所要优先考虑的。

而我们的项目就是基于这一需求提供同一局域网下的多人通信。

3 运行环境Linux 操作系统QT5 及以上版本2 项目设计

1 设计思路注册登录模块使用 QT 搭建服务器和客户端。

服务器和客户端之间使用 socket 来建立连接。

要求在打开客户端时能够和服务器自动连接。

用户填写的用户名和密码在客户端通过套接字来发送到服务器并在服务器的数据库中匹配是否有相应的账号密码有则登录无则返回 0提示错误。

注册时在客户端检测两次密码输入是否一致不一致进行提示一致则发送到服务器并写入服务器数据库用于登录时检测使用。

主界面主要是用于显示已有好友我们参考了 QQ 的主界面点击好友用户名可以进行聊天这个界面还添加了聊天室功能可以和已有好友进行多人聊天还有一个功能就是点击右上角的加号可以添加好友弹出的搜索窗口可以对现有账号进行搜索并发送好友邀请。

2 模块功能介绍登录注册模块给每个需要通信的用户分配一个账号来区分身份对已有账号的客户可以选择登录直接登入软件没有账号的用户可以选择注册功能来注册一个新的账号用来登入。

主界面用来显示已添加的好友和各功能按钮聊天室将所有加入某一 IP 地址连接的服务器的用户联系在一起某一用户在其中发送消息后广播给其他连入本服务器的用户。

聊天界面聊天界面用于和某一用户进行通信以及传输文件。

网络通信部分鉴于 QT 良好的封装性非常便利所以我这部分是基于 QTCPsocket 开发的。

在通信时服务器监听所有的 IP 地址来的通信请求并给每一个连接接进来的用户提供一个独立的套接字。

客户端向特定的 IP 地址发送一个通信连接请求服务器分配一个套接字给客户端通信。

客户端发送消息给服务器服务器将消息接收处理并给所有连接进这个服务器的客户端来转发这个消息实现局域网的多人通信。

3 模块结构图

4 程序流程图

5 功能设计分工登录注册功能搭建登录注册服务器和数据库要求客户端能够将文本框中的消息发送到服务器并与数据库中的数据进行互动检测确认用户名和密码是否正确匹配。

能够在用户错误填写或者账号不匹配时给出相应的提示。

聊天通信功能搭建通信服务器要求客户端能够连接到一个特定 IP 地址的服务器中并且与其他连接到此 IP 地址服务器的客户端之间相互通信。

构建聊天室和聊天框的界面和功能按钮。

能够向单独的 IP 地址客户端进行通信与发送文件。

主界面构建搭建注册登录之后的主界面完成好友列表和用户信息的排版构建主界面到聊天室和聊天框的交互按钮。

将网络通信模块和注册登录界面通过主界面进行连接。

UI 设计构建负责将其他人员为完成交互所设计的必要界面进行美化和重新设计构建对其他的界面内容进行 UI 设计。

必要图片资源的搜索和写入。

3详细设计使用 QT 搭建服务器和客户端。

服务器和客户端使用 socket 来建立连接。

IP 地址和端口号均可填写在填写后通过 connecttoHost 函数来建立对特定 IP 地址服务器的连接。

当用户在文本编辑框输入文本并且发送时将信息写入 data传输到服务器服务器检测消息内容和消息长度解析后广播给所有的连入此服务器的客户端。

对于服务器而言通过 listen 函数来监听连接对于每一个连接的客户端来分配一个 socket并存入 QList通过 Qlist 来检测所有连入的客户端并用于消息广播。

4实现方案服务器中用 listen 进行监听。

客户端填入想要连接的服务器的 IP 地址和端口号在点击进入聊天室时使用 connecttoHost 来进行连接。

当服务器监听到一个连接时会根据 socket 给客户端分配一个独立的 socket 来进行通信并存储在一个 QList 列表当中。

当客户端文本框中写入消息并且发送时服务器使用 readyread和 datarecvive槽函数来进行接收并将信息用 slotsend函数来广播到所有处在 Qlist 列表中的 socket 对应的客户端中。

当客户端断开连接时服务器会将它所对应的套接字 socket 从 Qlist 列表中剔除。

运行截图主服务器点击 connect 启动聊天室服务器点击创建聊天室启动登录注册界面填入用户名和密码登录未连接服务器、密码错误都会提示点击注册进入注册页面登录完成进入主界面点击下方进入聊天室可以进入聊天室默认端口为 8010填入连接 IP 点击进入聊天室即可进入输入消息点击发送即可发送消息。

点击好友头像进入私聊文本编辑框中输入消息点发送即可发送会自动检测消息时间并且显示在框中。

5系统测试bug客户端和服务器不能连接修正方法取消掉防火墙对于公用网络下的保护。

bug服务器不显示从客户端接收到的消息修正方法服务器只用 read接收了消息未写输出函数显示。

bug服务器接收消息时输出乱码修正方法若同时写两个 connect函数并且都用 readyread启动后面的读取函数会默认执行第一个可以在消息中设计区别符号来判断。

♻️ 资源大小

2

5MB➡️资源下载https://download.csdn.net/download/s1t16/87404317注更多内容可关注微信公众号【神仙别闹】如当前文章或代码侵犯了您的权益请私信作者删除

9.1免费软件安装官方正版-9.1免费软件安装官方正版应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123