基于Qt的局域网即时通信系统设计与实现(提供各种版本的源代码)
我创建了一个QQ群,有问题的话,可以直接加群:530240681。
github上项目的链接:https://github.com/siyueshiqi/LAN_IM
本系统主要实现了注册登录、好友管理、即时通信(文本、视频)、群组功能、消息管理、邮件收发、文件收发等主要功能。用户通过简单的注册以后,便可以登录系统。随后进行好友、群以及讨论组的添加,就可以与其他在线的用户进行行即时通信。对于消息记录,服务器以及客户端都会在各自文件或者数据库中进行相应的存储,用户可以随时进行本地消息以及网络消息的管理。当然文件的收发也得到了很好的实现,并且也集成了简单邮件收发功能。
本想分模块展示,但是要把单独模块的代码o出来,真的很麻烦,所以还是偷懒一点,直接整个来吧,不明白的可以留言,交流。
思路:
整体采用C/S框架,用户与服务器通过tcp进行连接,发送消息、邮件等等都是通过服务器转发;用户之间发送文件单独采用tcp连接,一方作为服务器,一方作为客户端;用户之间视频采用udp连接(也实现了tcp的,因为是局域网,tcp速度还可以)。
原开发环境是ubuntu,数据库采用mysql,并且视频模块涉及到其他库(ffmpeg,v4l2),直接上传,大家肯定无法通过,大家需要参考代码的话,可以留言。最近有点忙,在实验室做项目,等有空了,我把视频模块删除以后,再上传。
下面是主要的几个界面的展示:
登陆界面:
服务器界面:
左边显示已经登陆的用户ID,右边显示邮箱在线的ID(测试用的)
主界面:
好友查询:
邮件:
消息管理:
好友聊天界面:
群聊天界面:
讨论组聊天界面:
///
临时上传了三份聊天软件的源代码:
http://download.csdn.net/detail/shuideyidi/7710733
这个是我写的,但是由于视频模块的库过大,这个模块的代码被我删掉了,大家下载的话,编译肯定无法通过,所以要自行把视频模块注释掉。
并且我自定义了一个日历,在LAN_IM\IMClient\external\CustomCalendar\lib路劲下,里面是一个动态链接库,源代码也有,无法直接用的话,重新make一下,再拷进去好了。
http://download.csdn.net/detail/shuideyidi/7710743
这是以前在网上看到的一个源代码,十分感谢作者给我提供的思路,我很多都是参考他的。注册登录、好友管理、即时通信(文本、视频)这些聊天软件有的功能,他都实现了。代码还是不错的。
http://download.csdn.net/detail/shuideyidi/7710755
这是一本qt书上的源代码。采用udp进行聊天,tcp进行文件传送。功能比较简单,但是基本功能都有,也很有参考价值。
***********************************************************************************************************************************************************************************
2014-08-06
上次时间仓促,上传了一分最原始的代码,所以大家不能直接编译运行。现在有空,所以把视频模块注释掉了,并且多余的库文件以及中间文件,都删除。
但是其中有一个日历模块,我是独自写成一个linux32为系统底下的动态连接库的,所以无法直接使用的网友(应该是CustomCalendar找不到的错误),去LAN_IM\IMClient\external\CustomCalendar里,自行make编译成库,然后将生成的库文件,放在同目录的lib文件夹中,便可以通过编译了。(本人已经试过...应该没问题)
另外我使用的mysql数据库,在数据库文件下中,放了我导出来的两个数据库(客户端以及服务器端),大家直接导进去,便可以,也可以用文本阅读器打开,复制里的sql语句,再执行。
下载链接:
http://download.csdn.net/detail/shuideyidi/7723377
***********************************************************************************************************************************************************************************
2014-10-14
还有一个来自福州的同胞,下载了我csdn上的代码,起初没能通过编译,后来找到了我,最后成功了。
有位来自yemen的外国朋友,下载了我在csdn上的源代码,没能编译通过。
所以我决定自己把代码再修改一下,将LAN_IM\IMClient\external\CustomCalendar里的代码,全部直接移入IMClient里面。
这样各位直接下载,就可以编译通过,然后直接运行了。不出意外,应该不会报什么CustomCalendar之类的找不到的错误了。
如果觉得代码给你带了帮助可以给个star鼓励一下我...谢谢
github上的链接:https://github.com/siyueshiqi/LAN_IM
***********************************************************************************************************************************************************************************
2015-7-27 (今天是我女朋友23周岁生日,纪念一下)
由于在博客中提到了视频模块,所以很多网友找我要这里的代码,我再三劝说,这里代码问题很大,可是他们都不相信我。这年头做人太难了......
所以我干脆原封不动把一年前的代码完全上传。视频相关的库可能要重新编译,ubuntu32位的,大家随缘。
http://download.csdn.net/detail/shuideyidi/8937939
基于Qt的局域网即时通信系统设计与实现(提供各种版本的源代码)相关推荐
- 基于P2P的局域网即时通信应用
前言 这是一个使用java语言开发的基于P2P的局域网即时通信Android应用,界面是高仿微信的聊天界面,在里面你将会学到java多线程并发编程.Socket编程.UDP广播.TCP连接等. 项目地 ...
- BIO、NIO、AIO 详解和基于BIO模式下即时通信
第一章 BIO.NIO.AIO课程介绍 身边同学写的,没发布出来,我算是转载 1.1 课程说明 在Java的软件设计开发中,通信架构是不可避免的,我们在进行不同系统或者不同进程之间的数据交互,或者 ...
- Android基于UDP的局域网聊天通信
代码地址如下: http://www.demodashi.com/demo/12057.html 记得把这几点描述好咯:代码实现过程 + 项目文件结构截图 + 演示效果 1. 开发环境 1.1 开发工 ...
- 计算机winform参考文献写,毕业论文基于C#WinForm的语音通信系统设计.doc
毕业论文基于C#WinForm的语音通信系统设计 毕 业 设 计 目基于C#WinForm的语音通信系统设计学生姓名学 号系 别防灾仪器系专 业测控技术与仪器班 级开题时间2013年12月25日答辩时 ...
- Ricochet —— 基于 Tor 的加密即时通信工具
Ricochet 是一个基于 Tor 的加密即时通信工具 Ricochet 是个与众不同的实时通信,不相信你的验证,你的联系列表和你的通信. 无需暴露你的认证(IP 地址)给任何人就可以进行聊天 没有 ...
- 基于RS485的简单现场总线通信系统设计-南邮自动化课程设计
基于RS485的简单现场总线通信系统设计 指导书 1. 课程设计目的 1) 进一步融合大学期间所学的理论知识和实践技能: 2) 提高学生问题分析能力和实际操作能力: ...
- 基于jsp的高校固定资产管理系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
摘本文基于Java语言,设计与实现了一个高校固定资产管理系统.该系统提供了资产信息管理.资产入库.资产领用.资产报废等功能,旨在帮助高校高效管理和维护固定资产.本文详细介绍了系统的需求分析与设计.数据 ...
- qt中socket通信流程图_基于Qt的局域网通信设计说明书.doc
文档控制记录 序号版本日期修改内容修改人审批人1V1.02017-04-24创建2 目录目录4 辅助功能设计14 1目的 本文主要介绍利用Qt实现局域网通信的主要实现流程和一些技术知识点的设计说明. ...
- C语言 linux环境基于socket的简易即时通信程序
转载请注明出处:http://www.cnblogs.com/kevince/p/3891033.html --By Kevince 最近在看linux网络编程相关,现学现卖,就写了一个简易 ...
最新文章
- 未在本地计算机上注册oraoledb.oracle.1提供程序,未在本地计算机上注册“OraOLEDB.Oracle.1”提供程序--问题的处理...
- ADO.NET 快速入门(一):ADO.NET 概述
- python代码删掉了几行怎么撤回_78行Python代码实现现微信撤回消息功能
- mysql表缓冲大小可能设置过小_MySQL 5.7 my.cnf配置文件详解
- zabbix系列(八)zabbix添加对web页面url的状态监控
- 最近围绕生鲜社区团购的一些事
- Linux下使用源码安装出现的坑
- Linux实验——缓冲区溢出漏洞实验
- 《Lua游戏开发实践指南》一3.2游戏项目中的Lua
- JavaSocket编程基础
- 新hp设备无法连接到计算机,联想的台式机,用的win7系统,无法装惠普1108打印机驱动,一直显示新设备现已连接,然后无限循环!!!...
- 使用 p6spy,拦截到持久层执行的sql及参数
- iOS蓝牙连接打印机,打印小票
- 修改dhcp服务器租期,修改dhcp租期命令是expire day?
- java算法训练 调和数列问题
- c语言打气球游戏,打气球程序求修改
- 人脑词典、亡者归来……来看库兹韦尔对于未来的四个疯狂预测
- MySQL定位慢查询步骤
- zend guard loader php ts,安装Zend Guard Loader说明
- Oracle如何切换session,oracle修改process和session数