公開封塵已久的即時通訊源碼


看到最近有人研究IM,把以前的東西翻出來了,供想學習這方面的研究研究

通訊協議UDP,聊天方式點對點(P2P)

此項目簡單實現了早期QQ的基本功能

  1. 文字聊天
  2. 表情,圖片發送
  3. 發送離線消息,圖片
  4. 在線/離線,文件傳送
  5. 上傳自定義頭像
  6. 群功能
  7. 語音、視頻聊天
  8. 天氣預報
  9. 自定義選項卡
  10. 截圖功能

理論上功能是實現了,但是在NAT穿透上有問題,所以P2P有時不能成功,所以在外網,只是一個玩具而已

客戶端運行截圖

涉及到的技術

網絡通訊

  1. 消息序列化,加密
  2. 數據傳輸 協議定義,消息分塊發送,消息完整性判斷和重復發送,SOKET5代理
  3. NAT穿透,俗稱打洞
  4. 消息緩存/轉發

DOC里有之前畫的流程圖,用Diagram Designer打開

界面互動

  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  (重新修改了)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM