读书人

[开源]Linpop即时通讯系统,该如何解决

发布时间: 2012-02-15 12:09:43 作者: rapoo

[开源]Linpop即时通讯系统
Linpop即时通讯系统

严重声明:此项目的确是我们(XX大学软件学院-方程式团队)在2010年末开发的,最终提交给实训老师是2011年1月初,当时是我们秋季学期的Linux课程实训项目,我们有所有的文档资料和代码,包括同学和实训老师的证明及邮件历史,今天想分享到网络时无意间发现我们的代码和文档竟然被某人作为了《沈阳航空航天大学北方科技学院毕业设计(论文)》,见资源http://loong22kiral3.download.csdn.net/,看到论文二字我惊讶了,下载下来一看,一模一样,三个资源,代码完全没修改过,所谓的“论文”中除了前面的“绪论”自己不知道从哪弄过来外,其它文字竟然一模一样抄袭啊,看得我火大啊,这是我们组两个多月的成果啊,需求分析拷贝的,概要设计/详细设计拷贝的,不知道是谁把这些资料流出去的,很恼火,一定要调查清楚,我将联系这个学校,查清原因。

这个实训项目Linpop,网络上还有其它版本,无可厚非,这是东软的实训项目,我们当时在学校里也是东软的老师带的实训,但是上述的做法太恶劣了,你要是本着学习的态度,自己修改过也罢,一模一样的抄袭啊,我怎么不恼火。

原始开发团队

XX大学软件学院 - 方程式团队(临时组成,已解散)

项目来源及背景

此项目为XX大学软件学院实训项目,需求为开发一款运行于Linux操作系统平台的IM(即时通信)软件,可以实现局域网内任意电脑之间的信息接受与发送,也可作为支持200人中小型企业,企业信息平台中的一个组件及功能存在。整个软件基于C/S结构,数据经过服务器转发,便于服务器对客户端传送过来的数据进行分析和处理,例如单对单聊天、群聊天等。客户端基于GTK+实现整个GUI框架,最终界面效果良好。
项目预期是使用MySQL数据库作为服务器后台数据库,用于联系人信息的动态加载和保存,以及聊天记录的保存等,已经实现Demo,但不稳定,故目前上传的版本把联系人信息写成了Hard Code到代码中。

开发环境

Ubuntu10.04、GTK+2,Eclipse for C/C++

已经实现的基本功能

1.客户端GUI模仿了Tencent QQ
客户端使用GTK+2实现,布局和实现模仿了Tencent QQ,运行效果好;
2.聊天数据经服务器转发
虽然测试环境为局域网,但数据经过服务器转发,可扩展性强,可以扩展不限于局域网;
3.单对单聊天
支持单对单的聊天,仅支持已经上线用户,不支持离线消息;
4.群聊
支持群聊,分为公司总群和各个部门的群;
5.用户上线通知
用户上线消息会通过服务器转发,上线用户使各客户端对应用户文字信息颜色变成红色表示此用户在线;
6.聊天记录保存
简单的聊天记录保存,格式为文本文件;
7.文件传送
实现单对单的文件传送,效果良好稳定。

未实现的功能

1.离线消息的传送
2.聊天时表情、图片、字体的支持
3.头像的修改
4.服务器数据库的稳定支持
5.文件多个传送
6.语音、视频聊天
7.更多未实现的功能

注意事项及说明

1.由于项目开发时间为2010年年末,开发所用的GTK+版本为2.x,不保证较高版本的兼容;
2.GTK+客户端运行时需要输入的ID,有效ID从0610031001- 06100310011,具体请查看服务器端代码;
3.作为Linux课程实训项目,时间紧迫,只实现了最基本的功能,目的还是在于学习知识而不是开发商业项目。

附记

经过尝试,Linpop项目最终利用MinGW+MSYS等工具被成功移植到Windows上,移植难点在于GTK+多线程无法适应Windows环境而出现死机情况,最后除了文件传送没能成功移植(文件传送涉及进度条不断更新,在Windows下处理多线程较麻烦,需要重构代码,未实现),其它功能能够稳定的运行。
若对移植过程感兴趣,可以将针对Linpop移植的详细过程上传,包括环境搭建,跨平台代码修改等。

Ubuntu10.04下运行效果



Windows下运行效果




代码下载

1.Ubuntu10.04下原生版下载
Ubuntu10.04下开发的原生版,不支持跨平台扩展,在Ubuntu下在相应目录下执行Make即可编译通过,前提是已经搭建好GTK+的开发环境;
2. 跨平台版下载
通过代码中的宏定义,同时支持Windows和Ubuntu,同样需要先搭建好Windows下的GTK+开发环境。在Windows使用MinGW执行Make生成可执行文件,Makefile文件为Makefile_Win32,在Ubuntu下的Makefile文件为Makefile_Linux,注意Windows下编译通过后生成的可执行文件的运行需要GTK+ Windows版本的支持,具体文件请参照Windows下可执行文件下载;
3.Windows下可执行文件下载
已经移植好的Linpop Windows可执行文件,包括Windows下运行GTK+所需要的DLL等文件,先运行服务器端的Linpop_Server.exe,然后直接执行客户端bin目录下的Linpop.exe运行客户端程序,登录即可测试效果。

版权声明

来源于网络,服务于网络,本项目原始开发者为XX大学软件学院方程式团队,项目开发所用的大部分知识和文档都来源于网络,来源于OpenSource,故将开发后的代码也OpenSource,请遵守OpenSource License,本文所述的内容和代码仅供个人学习使用,不可用于其它非法用途,例如本文前所说的严重抄袭,一经查证,将依法追究其责任。若要是涉及商业用途(应该也不会),请联系我们。

博文链接:http://blog.csdn.net/exceed_me/article/details/6678077

[解决办法]
友情支持.

[解决办法]


推荐
[解决办法]
顶一下,天下一片忽悠
[解决办法]
支持!
[解决办法]
友情帮顶!
[解决办法]
友情帮顶 拒绝抄袭
[解决办法]
友情帮 UP
[解决办法]
厉害,帮你顶
[解决办法]
Like your article, looking forward to your update, support you forever ! http://www.good4sale.org/


[解决办法]

[解决办法]
mark
[解决办法]
表示支持。
[解决办法]
顶下...
[解决办法]
支持一下
[解决办法]
支持,顶一个!
[解决办法]
友情顶下。

[解决办法]
支持维权,,批评打击,抄袭者!
[解决办法]
支持共享!
[解决办法]
好强的技术成果
[解决办法]
谢谢分享,学习了!!!
[解决办法]
这个很不错,谢啦
[解决办法]
不错,支持一下
[解决办法]
不错,支持一下
[解决办法]
貌似很复杂
[解决办法]
果断支持
[解决办法]
支持正版 支持开源
[解决办法]
路过纯支持
[解决办法]
什么开源协议啊?楼主??哈罗
[解决办法]
pidgin
[解决办法]
谢谢分享,学习了!!!
[解决办法]
学习了
[解决办法]
your id is not exist

(y)
[解决办法]
your spirit of open source is worth encouraging.
[解决办法]
中国的copy业是很发达的啊哈哈支持原创
[解决办法]

[解决办法]
哥潜水多年了 实在忍无可忍了 Mr_Bird
[解决办法]
也不用发那么大火把?让别人吵吵而已。又不是商用了!
[解决办法]
同情,但也不必介意,就当为开源软件做贡献了,即时聊天的开源软件也很多的
[解决办法]
谢谢分享,学习了!!!
[解决办法]
楼主,你准备怎么开源?GPLV2还是别的什么...你可以考虑把这个项目放到一些著名的项目托管网站,让更多的人了解。比如GitHub, sourceforge, googlecode..
你自己搞开源,你的团队成员都同意吗?别最后搞出意见啊
[解决办法]
天下文章一大抄啊
[解决办法]
好,支持开源!!!
------解决方案--------------------


不也是直接拿国外代码改的吗 xmpp那堆开源的代码,自己从协议栈开始实现挺麻烦的
[解决办法]
密码没设吧 哈哈
[解决办法]
正学习Linux中,加油!努力!
[解决办法]
好贴。顶!
[解决办法]
楼主啊,是不是没人分享出来,你们也不会开源了吧

[解决办法]
不错 谢谢了, 刚刚 看完服务器端,算
不过提出一点建议:
1:代码写的比较糙,比较多的代码冗余
2:网络传输,struct结构应该取消其字节对齐, 1是为了减少不必要的传输量,2是为了兼容linux和windows不同的代码对齐方式
3:我在函数 client_login 中发现一个错误:判断已经登录后,send消息后应该立即返回,但是函数中却还向
array_sock中添加数据

以上就是我的一点建议, 不过还是要谢谢作者了,奉献了这些代码,让我们对即时通信系统有了一定的了解
[解决办法]
楼主的client能不能将界面代码与功能实现代码分开?
[解决办法]
我也是 想看client 可是又不懂gtk 无法下手阿
[解决办法]
这样耦合性太强了,楼主应该分开的。
[解决办法]
顶一下,不过我只会写命令行代码。

读书人网 >UNIXLINUX

热点推荐