AN Instant Messenger created with QT
即时通讯软件IMChat
-
体会从需求理解出发,到软件整体设计,详细设计,开发,测试,发布的整体流程。熟悉软件开发整体过程
-
了解基于Linux操作系统下的应用程序开发方法
-
掌握Linux系统下开发工具gdb、gcc、vim、makefile的使用
-
培养快速学习新知识,并在项目中使用的能力及独立解决问题的能力
-
掌握开源软件技术gtk/QT图形库的使用,提高初级ui设计能力
-
掌握Linux系统下程序并发的开发方法包括多进程(process)编程及多线程(pthread)编程。
-
掌握socket通信编程方法
开发一款运行于Linux操作系统平台的IM(即时通信)软件,可以实现局域网内任意电脑之间的信息接收与发送,也可作为支持200人中小型规模的企业,企业信息平台中的一个组件及功能存在。
需要针对企业情况,考虑项目的实现框架结构及相关程序的服务支撑度及稳定性,尤其需要对程序的容错有一定考虑。
设包含以下的功能:
1、接受局域网上其他电脑的数据;
2、发送数据给局域网上其他电脑;
3、可以随意设置发送ip地址;
4、程序界面及相关功能按钮
5、发送文件
运行系统:Ubuntu 20.04
开发工具:VIM+GCC+GDB+CMAKE
QT/Gtk+图形设计
程序的界面由QT/Gtk+图形库实现
Socket通信
网络通信由Socket编程实现其功能
多线程、多进程编程
程序的主框架应该是一个多进程、多线程结构。
界面风格为类似于x-windows应用程序界面。以下界面只作为参考,可自行设计,不作为具体项目达成目标。
主界面大致功能为
状态条信息可以显示正在通信的ip地址
点击传输文件按钮弹出此窗口
界面上需显示传输进度条
2.2 数据处理
这部分就界面相关联功能进行描述
将指定信息发送给指定的ip地址(或用户名)的电脑,通过界面的文本框进行信息输入,点击发送按钮进行发送。
从指定ip地址(或用户名)的电脑接受发送过来的信息,对方发送过来的信息自动显示在界面接受文本框中。
设定可通信电脑的ip地址,通过界面的文本框输入或者使用用户名进行通讯人员的管理
实现双方文件传输的功能
2.3 错误处理
需设计完整的错误处理机制
3.1系统结构图
3.2模块要求
各个模块简单说明
图形界面QT/gui:
l 注册/登录窗口:包括相关按钮及控件,QT/gtk+实现
l 通信主窗口:包括相关按钮及控件,QT/gtk+实现
l 传输文件窗口:包括相关按钮及控件,QT/gtk+实现
网络通信层:
l 通信功能:单聊
l 程序并发:多进程接收发送信息及文件或者多线程接收或发送信息及文件