看到最近有人研究IM,把以前的东西翻出来了,供想学习这方面的研究研究
通讯协议UDP,聊天方式点对点(P2P)
此项目简单实现了早期QQ的基本功能
- 文字聊天
- 表情,图片发送
- 发送离线消息,图片
- 在线/离线,文件传送
- 上传自定义头像
- 群功能
- 语音、视频聊天
- 天气预报
- 自定义选项卡
- 截图功能
理论上功能是实现了,但是在NAT穿透上有问题,所以P2P有时不能成功,所以在外网,只是一个玩具而已
客户端运行截图
涉及到的技术
网络通讯
- 消息序列化,加密
- 数据传输 协议定义,消息分块发送,消息完整性判断和重复发送,SOKET5代理
- NAT穿透,俗称打洞
- 消息缓存/转发
界面互动
- 窗体互动
- 界面绘制
- 换肤
RTF文本处理
- 字体大小颜色控制
- RTF图片提取发送
编译好的客户端,能连上测试服务器,需要先注册账号
http://119.10.29.11:8081/SinoTalk.rar
有不明白的欢迎留言讨论
项目说明
请勿将此程序用于商业用途,以免产生不必要的纠纷,仅供学习,参考 开发时间2010年,比较久远,有很多问题 请关注我的新项目CRL快速开发框架 http://www.cnblogs.com/hubro/p/4288047.html
当前项目客户端编译运行即可连上测试环境服务器(随后可能关闭) 测试服务器地址 http://119.10.29.11:8081/ 账号由此注册 项目划分 CLient 客户端 Comm 公共方法 DuoDuo 启动程序 IpcChannelObj 服务控制台通讯对象 Server 服务主程序 SinoTalkServerConsole 服务控制台 SinoTalkService 服务程序(在参数配置主程序路径) SinoTalkWeb 网站接口(为避免纠纷,未公开,请参考网上示例) Update 升级程序 ServerSetup 服务安装程序 数据库(为避免纠纷,未公开)
此项目原始版本为较老的.NET2.0/3.5开发测试时按实际情况调整生成环境
端口地址更改 服务器端口 SinoTalk.Comm.P2PConsts.SERVER_UDP_PORT=2280 客户端服务器地址绑定 SinoTalk.Client.ClientConsts._SERVER_ADDRESS="119.10.29.11"
Activex控件注册 语音和视频为Activex控制,需要先注册才能编译通过 DEBUG目录有注册文件 regsvr32 "aocx2.ocx" regsvr32 "Vocx.ocx" regsvr32 "ImageOle.dll"
项目下载地址: 链接: http://pan.baidu.com/s/1kTst3H9 (重新修改了)
相关推荐
http://www.cnblogs.com/hubro/p/4316315.html