在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → P2P即时通讯源码(曾在微软设计大赛中获奖).rar

P2P即时通讯源码(曾在微软设计大赛中获奖).rar

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:1.60M
  • 下载次数:2
  • 浏览次数:70
  • 发布时间:2021-12-09
  • 实例类别:一般编程问题
  • 发 布 人:js2021
  • 文件格式:.rar
  • 所需积分:2
 

实例介绍

【实例简介】
曾在微软设计大赛中获奖。是一个局域网内的通讯工具,有文字聊天、语音聊天、文件传输、信使服务、邮件检测等主要功能。 本压缩文件内共包含四部分内容: 第一:本说明文件; 第二:两个可执行文件(LanChat(NT).exe只能在NT下使用,因为其中包含了网络访问检测的部分;LanChat(98).exe不包含网络访问检测部分,故可以在98及NT两种环境中使用); 第三:源代码,都放在子目录“new_EMU_RMCS0.61(微软大赛)”下; 第四:有关软件使用说明的一个 hlp 文件; 本软件初衷是为了不在同一楼层却在同一个局域网内的两个用户联系方便而开发的,随着后来各种需要的增加,新增加了一些别的功能,整个软件的使用及外观稍微模仿了QQ的一些特点; 本软件用户之间的沟通不是通过服务器转发的方式来进行的,而是通过广播的方式宣告自己以及查询网上还有别的哪些用户,当找到了相应的用户后,就采用点对点通信的方式来进行文字数据的发送,数据包基于UDP模式,不采用TCP是因为局域网内网络状况较好,一般不会丢包,而且UDP方式简单而且快捷。目前,软件的系统数据发送和聊天文字等沟通数据的发送都在一个端口内,通过识别特定字符串的方式来分开做相应处理(比如所有的系统消息数据都是在串的前后添加lsm而构成,如“系统查询是否存在高版本程序”的命令为 lsmCheckVersionlsm); 进入时的帐户口令保存在注册表中,通过MD5算法加密,密钥串中包含了“用户的帐户信息+特定字符串”的方式,为破解增加了一定的难度;在语音聊天里(即通过声卡和麦克风的语音聊天),通过动态huffman编码来压缩传送的语音数据,使得语音聊天的大量语音数据能够及时、准确的传送而不会造成网络拥塞,动态huffman编码已经调通,而且由于是动态压缩,故huffman编码采用的是一遍扫描而不是两遍扫描数据的方式,所以可以采取边压缩边传送的方式,而解压也可以边解压边播放,方便了语音的实现。数据的压缩比根据数据特点的不同而有差异,相对于文本文件和语音数据文件(语音数据一般都包含大量相同的ASCII值的数据)来说一般压缩为原来大小的1/2、1/3都没有问题,不过由于时间等一些原因,在程序中还未能加上传送的语音数据先经过huffman编码这一过程,这点比较遗憾,不过即使不加也已经能够实现语音聊天而不会产生时延,如果加上压缩,相信互相的聊天通信对于网络的压力能够大大减轻,而且声音的采样频率也可以提高,使得声音的回放更加逼真; 另外,本程序还包含邮件检测(通过RFC标准文件中规定的通信协议)、简单邮件发送、信使服务、定时提醒、定时关机等功能,其中,检测邮件、定时提醒、语音聊天等功能的实现是通过分别启动一个线程的方式,这样在使用这些功能时就不会影响到主程序的响应速度,而且相互之间也不会有影响; 本程序还初步试验了对于网络访问本机检测的相关函数,并添加了“网络访问检测报告”功能(LanChat(NT).exe就可实现此功能),不过由于程序重点不在此,故实现的东西只是一个初步的试验,实用性不大。
【实例截图】
【核心代码】
16359647332794822241.rar
└── B2004@10.19
├── LanChat(98).exe
├── LANCHAT.GID
├── LANCHAT.HLP
├── LanChat(NT).exe
├── new_EMU_RMCS0.61(微软大赛)
│   ├── CDebug.cpp
│   ├── CDebug.h
│   ├── ChatBySoundShareData.h
│   ├── chatsharedata.h
│   ├── CheckMailAddOrEdit.cpp
│   ├── CheckMailAddOrEdit.h
│   ├── DialogChatBySound.cpp
│   ├── DialogChatBySound.h
│   ├── DialogCheckIpByName.cpp
│   ├── DialogCheckIpByName.h
│   ├── DialogLogonCheckPass.cpp
│   ├── DialogLogonCheckPass.h
│   ├── DialogLogon.cpp
│   ├── DialogLogon.h
│   ├── DialogMailslotMessage.cpp
│   ├── DialogMailslotMessage.h
│   ├── DialogOppositePersonInfo.cpp
│   ├── DialogOppositePersonInfo.h
│   ├── DialogSendMail.cpp
│   ├── DialogSendMail.h
│   ├── EDClock.cpp
│   ├── EDClock.h
│   ├── EMU_Rdlg.cpp
│   ├── EMU_Rdlg.h
│   ├── EMU_RMCS.APS
│   ├── EMU_RMCS.CLW
│   ├── EMU_RMCS.CPP
│   ├── EMU_RMCS.DSP
│   ├── EMU_RMCS.DSW
│   ├── EMU_RMCS.H
│   ├── EMU_RMCS.MAK
│   ├── EMU_RMCS.ncb
│   ├── Emu_rmcs.opt
│   ├── EMU_RMCS.PLG
│   ├── EMU_RMCS.RC
│   ├── EMU_RMCS.sln
│   ├── EMU_RMCS.suo
│   ├── EMU_RMCS.VCP
│   ├── EMU_RMCS.vcproj
│   ├── Encode.cpp
│   ├── Encode.h
│   ├── Hlb.cpp
│   ├── Hlb.h
│   ├── HuffCode.cpp
│   ├── HuffCode.h
│   ├── HuffDecode.cpp
│   ├── HuffDecode.h
│   ├── HyperLink.cpp
│   ├── HyperLink.h
│   ├── MenuSpawn.cpp
│   ├── MenuSpawn.h
│   ├── NotifySetIp.cpp
│   ├── NotifySetIp.h
│   ├── othersfunc.cpp
│   ├── othersfunc.h
│   ├── PropPageHotkey.cpp
│   ├── PropPageHotkey.h
│   ├── PropPageOptionAccount.cpp
│   ├── PropPageOptionAccount.h
│   ├── PropPageOptionCheckMail.cpp
│   ├── PropPageOptionCheckMail.h
│   ├── PropPageOptionFirst.cpp
│   ├── PropPageOptionFirst.h
│   ├── PropPageOptionIP.cpp
│   ├── PropPageOptionIP.h
│   ├── PropPageOptionPersonInfo.cpp
│   ├── PropPageOptionPersonInfo.h
│   ├── PropPageOptionShutdownOrCall.cpp
│   ├── PropPageOptionShutdownOrCall.h
│   ├── PropPageOptionSound.cpp
│   ├── PropPageOptionSound.h
│   ├── PropSheetOption.cpp
│   ├── PropSheetOption.h
│   ├── README.TXT
│   ├── RES
│   │   ├── 0.BMP
│   │   ├── 1.BMP
│   │   ├── 2.BMP
│   │   ├── 3.BMP
│   │   ├── 4.BMP
│   │   ├── 5.BMP
│   │   ├── 6.BMP
│   │   ├── 7.BMP
│   │   ├── 8.BMP
│   │   ├── 9.BMP
│   │   ├── BAMBOO.BMP
│   │   ├── BLACK.BMP
│   │   ├── CURSOR_R.CUR
│   │   ├── EMU_RMCS.ICO
│   │   ├── EMU_RMCS.RC2
│   │   ├── Key.ico
│   │   ├── MailToMe.cur
│   │   ├── MENUCHK.BMP
│   │   ├── msgcome_old.wav
│   │   ├── MSGCOME.WAV
│   │   ├── notify_about.bmp
│   │   ├── notify_check.bmp
│   │   ├── notify_check.ico
│   │   ├── notify_check_perry.ico
│   │   ├── notify_config.bmp
│   │   ├── notify_exit.bmp
│   │   ├── notify_flash.ico
│   │   ├── notify_flash_send.ico
│   │   ├── notify_goon.bmp
│   │   ├── notify_ip.bmp
│   │   ├── notify_mailslot.bmp
│   │   ├── NOTIFYME.BMP
│   │   ├── notify_not_online.ico
│   │   ├── notify_null.bmp
│   │   ├── notify_send.ico
│   │   ├── POINT.BMP
│   │   ├── splash_bak.bmp
│   │   ├── SPLASH.BMP
│   │   ├── SYSBAR.BMP
│   │   └── Thumbs.db
│   ├── RESOURCE.H
│   ├── RESOURCE.HM
│   ├── Splash.cpp
│   ├── Splash.h
│   ├── STDAFX.CPP
│   ├── STDAFX.H
│   ├── threadCall.cpp
│   ├── threadCall.h
│   ├── threadChatBySoundReceive.cpp
│   ├── threadChatBySoundReceive.h
│   ├── threadChatBySoundSendTo.cpp
│   ├── threadChatBySoundSendTo.h
│   ├── threadCheckMail.cpp
│   ├── threadCheckMail.h
│   ├── threadSendMail.cpp
│   ├── threadSendMail.h
│   ├── threadSetTitleWithIp.cpp
│   ├── threadSetTitleWithIp.h
│   ├── threadShutdown.cpp
│   ├── threadShutdown.h
│   ├── ToolTipWnd.cpp
│   └── ToolTipWnd.h
└── 说明.txt

3 directories, 141 files

标签:

实例下载地址

P2P即时通讯源码(曾在微软设计大赛中获奖).rar

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警