码迷,mamicode.com
首页 > 其他好文 > 详细

公开封尘已久的即时通讯源码

时间:2015-03-05 18:49:24      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

看到最近有人研究IM,把以前的东西翻出来了,供想学习这方面的研究研究

通讯协议UDP,聊天方式点对点(P2P)

此项目简单实现了早期QQ的基本功能

  1. 文字聊天
  2. 表情,图片发送
  3. 发送离线消息,图片
  4. 在线/离线,文件传送
  5. 上传自定义头像
  6. 群功能
  7. 语音、视频聊天
  8. 天气预报
  9. 自定义选项卡
  10. 截图功能

理论上功能是实现了,但是在NAT穿透上有问题,所以P2P有时不能成功,所以在外网,只是一个玩具而已

客户端运行截图

技术分享

技术分享技术分享技术分享技术分享

涉及到的技术

网络通讯

  1. 消息序列化,加密
  2. 数据传输 协议定义,消息分块发送,消息完整性判断和重复发送,SOKET5代理
  3. NAT穿透,俗称打洞
  4. 消息缓存/转发

界面互动

  1. 窗体互动
  2. 界面绘制
  3. 换肤

RTF文本处理

  1. 字体大小颜色控制
  2. 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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!