4.3.4 局域网内实现广播功能 http://www.paper51.com 在本设计中单播发送的按钮为BitBtn3,主要是通过IdUDPServer和IdUDPClient组件来编写的,主要是使用了client.Broadcast来对信息进行发送的,在发送时将会把信息发送给在局域网内部的所有用户包括自己。 http://www.paper51.com 下面是发送按钮的代码部分: http://www.paper51.com paper51.com procedure TForm1.BitBtn3Click(Sender: TObject); copyright paper51.com var paper51.com
chatinfo:string; 内容来自www.paper51.com chatinfobuf:array[0..2030]of char; 内容来自www.paper51.com f:textfile; copyright paper51.com begin http://www.paper51.com chatinfo:=format('%-6s%-255s%-1024s',['CHAT',myname,memo1.Lines.Text]); 内容来自论文无忧网 www.paper51.com strpcopy(chatinfobuf,chatinfo); 内容来自论文无忧网 www.paper51.com client.Broadcast(chatinfobuf,9000); 内容来自论文无忧网 www.paper51.com end; 内容来自论文无忧网 www.paper51.com 4.3.5 历史信息记录功能 内容来自论文无忧网 www.paper51.com 为了能让用户对历史的信息进行查看,所以本设计中包含了一个对历史信息进行记录的功能,主要是创建一个记事本文件对信息进行复制保存,以下就是历史信息记录的代码: http://www.paper51.com
内容来自www.paper51.com procedure Tdetailform.RecorBBtnClick(Sender: TObject); paper51.com begin 内容来自www.paper51.com if SavRecorDia.Execute then http://www.paper51.com begin http://www.paper51.com RecorEd.Text:=SavRecorDia.FileName; copyright paper51.com end; copyright paper51.com end; paper51.com procedure Tdetailform.Button3Click(Sender: TObject); 内容来自论文无忧网 www.paper51.com var F:textfile; copyright paper51.com begin copyright paper51.com
showmessage(RecorEd.Text); http://www.paper51.com assignfile(f,RecorEd.Text); http://www.paper51.com rewrite(F); http://www.paper51.com
closefile(F); http://www.paper51.com end; paper51.com ………… paper51.com begin paper51.com if detailform.RecorEd.Text<>'' then 内容来自论文无忧网 www.paper51.com begin http://www.paper51.com Assignfile(f,detailform.RecorEd.Text); http://www.paper51.com if fileexists(detailform.RecorEd.Text)then append(f) copyright paper51.com else rewrite(F); 内容来自www.paper51.com writeln(f,'====================================='); paper51.com writeln(f,'发往:'+_ToIp); http://www.paper51.com if SealCheckBox.Checked then paper51.com writeln(f,'时间:'+datetostr(now)+timetostr(now)) http://www.paper51.com else 内容来自www.paper51.com writeln(f,'时间:'+datetostr(now)+timetostr(now)); paper51.com writeln(f,'-------------------------------------'); copyright paper51.com
writeln(f,SRMemo.Lines.Text); paper51.com
writeln(f,'====================================='); http://www.paper51.com closefile(f); http://www.paper51.com
end; 内容来自论文无忧网 www.paper51.com end; copyright paper51.com
5 系统实施及测试 内容来自www.paper51.com 5.1 实施概况 内容来自www.paper51.com 本设计是基于局域网内采用C/S结构的即时通信软件,其主要实现的是单播和广播功能,还包含了显示用户信息、查看历史信息等辅助功能。本设计是在是Microsoft Windows XP系统上利用编程软件开发的,然后再组建的局域网中来进行测试和调试工作,所以最少会用到两台或两台以上的电脑并由交换机组成一个小型的局域网,考虑到一些系统兼容性的问题,所以在内部网络上的每台计算机上都用的是相同的操作系统,在网络配置方面也是相同的方式。对于编程软件的选择主要是采用Delphi7来编写和编译程序的,因为考虑到Delphi是具有可视化的一个编程环境, Delphi它提供了500多个可供使用的构件,利用这些部件可以快速地构造出应用系统。也可以根据自己的需要修改部件或用Delphi本身编写自己的部件,能提供方便、快捷的Windows应用程序开发环境,本程序也基本是借助与那些组件来编写的。 http://www.paper51.com
5.2 测试方案 paper51.com 本程序在Windows XP操作系统下,使用BorlandDelphi 7企业版软件作为开发工具,利用Delphi7(企业版)集成开发环境中提供的网络通讯组件进行编程的,代码也是在这个开发环境中编译的,并在组建的局域网中进行系统测试的。 内容来自论文无忧网 www.paper51.com
设计测试的是同在一个局域网中,先将编译好的程序复制到内部网络上的没台计算机上面,然后都将设计的系统打开运行,这是观察是否能显示所有的在线用户的信息,如果了防火墙之类的软件正在运行的话,很可能不能正常显示工作组、IP等信息,所以最好是关闭防火墙。如图11: 内容来自论文无忧网 www.paper51.com paper51.com 图11显示在线用户 copyright paper51.com 如果能显示出来用户的信息则在其中一台计算机上的信息窗体中输入好准备发送出去的信息“欢迎使用!”,如图12: paper51.com
内容来自www.paper51.com 图12输入发送信息 copyright paper51.com 如果是想发送到整的网络就点击界面上的广播按钮,这时在所有的计算机上都会弹出一个接收的界面,如图13: 内容来自www.paper51.com copyright paper51.com 图13接收界面 paper51.com 点击查看按钮则会弹到一个查看信息的界面上,上面会显示出刚才所发送的信息和来自于谁,如图14: paper51.com
内容来自论文无忧网 www.paper51.com
图14查看界面 paper51.com 如果是想发送给网络中的其中一个用户就先选择要发送的对象再点击发送按钮,这时就只会在那个指定的用户那里弹出查看的界面了而其他用户则不会接收到发送来的信息。 内容来自论文无忧网 www.paper51.com 要是想对通讯的内容进行记录,则在历史记录窗体上选择保存通讯记录的路径,点击确认按钮,便会在选择的路径里生成一个文本文件用来保存用户的通讯记录了,在点击托盘区图标选择查看记录,如图15: 内容来自论文无忧网 www.paper51.com
copyright paper51.com
图15通讯记录界面 http://www.paper51.com
最后是退出,退出只能点击托盘区的图标来退出,当关闭了其中一个用户的时候,其他的用户列表中自动会将该用户的用户信息给删除,这表明此用户已经下线离开了。 http://www.paper51.com 5.3 测试结果 paper51.com
经过多次在局域网中进行测试,本设计的基本功能都在测试中得到了体现,下面就是我在整个测试的过程中得到的一些测试结果: 内容来自www.paper51.com 1. 在局域网内能完整传输所发的信息,不会出现信息丢失或乱码等情况 内容来自www.paper51.com
2. 在测试的时候如果开了防火墙很可能不能显示工作组,但并不会影响到信息的发送和接收 paper51.com 3. 在发送广播信息时是对所有用户发送信息,包括自己也会收到广播信息 copyright paper51.com 4. 当进入系统后便能自动更新显示在线用户信息,用户下线时能在显示列表中也能自动删除此用户信息 内容来自论文无忧网 www.paper51.com 5. 能对用户在即时的通讯时的通讯信息进行记录,方便用户查看历史的通讯信息 paper51.com 6. 通过测试还发现了用户只能进行文本格式即时的通讯,不能发送图片等格式的信息 内容来自论文无忧网 www.paper51.com 7. 在发送信息时没有能对信息进行加密后在发送 内容来自www.paper51.com |