曾在微软设计大赛中获奖。是一个局域网内的通讯工具,有文字聊天、语音聊天、文件传输、信使服务、邮件检测等主要功能。
本压缩文件内共包含四部分内容:
第一:本说明文件;
第二:两个可执行文件(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就可实现此功能),不过由于程序重点不在此,故实现的东西只是一个初步的试验,实用性不大。
1