水信息网络传输技术课程设计报告文档格式.docx

上传人:b****6 文档编号:19595311 上传时间:2023-01-08 格式:DOCX 页数:12 大小:131.21KB
下载 相关 举报
水信息网络传输技术课程设计报告文档格式.docx_第1页
第1页 / 共12页
水信息网络传输技术课程设计报告文档格式.docx_第2页
第2页 / 共12页
水信息网络传输技术课程设计报告文档格式.docx_第3页
第3页 / 共12页
水信息网络传输技术课程设计报告文档格式.docx_第4页
第4页 / 共12页
水信息网络传输技术课程设计报告文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

水信息网络传输技术课程设计报告文档格式.docx

《水信息网络传输技术课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《水信息网络传输技术课程设计报告文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

水信息网络传输技术课程设计报告文档格式.docx

整个程序采用VisualBasic6.0来实现,由于在《水信息计算机应用技术》和《水信息网络传输技术》中,我们系统地学习了VisualBasic编程语言和计算机网络方面的相关知识,所以这次设计也是对前期学习成果的一次“实战检验”。

2.设计依据及用户界面

该设计中所涉及到的网络通信协议主要是TCP/IP协议。

TCP/IP协议是以传输控制协议TCP(TransmissionControlProtocol)和网际协议IP(InternetProtocol)为核心的一组协议。

TCP/IP协议自1974年诞生以来,逐步投入实际网络应用中,在1980年被加入UNIX内核,1983年1月1日又成为ARPnet(世界最早采用分组交换技术的广域网络)上唯一的正式协议。

现在已经是国际互联网的标准协议。

TCP/IP协议采用分组交换通信方式,即两台计算机之间要交换的信息不是作为一个整体进行传输,而是划分成大小基本相同的数据分组,这样的传输方式可以提高效率和安全性。

TCP/IP协议有三个主要的特点:

功能丰富、开放性和普遍性。

图-2TCP/IP参考模型

2.1设计平台

设计中所涉及到的计算机编程语言是VisualBasic,程序开发平台采用VisualBasic6.0。

序开发平台采用VisualBasic6.0。

VisualBasic是早期Basic语言的基础上发展起来的一种可视化的Windows平台上的程序开发工具。

最早的VB出现于1991年,即VB1.0版本。

它标志着Microsoft开始将Basci语言向可视化编程方向发展,虽然它的功能极其有限,但却有跨时代的意义。

伴随着Windows操作平台的不断成熟,VB版本也不断升级。

从1991年秋季推出VB2.0到1998年秋季推出VB6.0,短短的几年内VB有了巨大的提高,也一步步更加完善。

VB6.0为满足不同层次的用户需要,提供了三个版本:

学习版(Learning)、专业版(Professional)和企业版(Enterprise)。

我们主要用的是专业版,专业版包括所有的内部标准控件以及网络、表格和数据绑定等控件还包括ActiveX控件、Internet控件和CrystalReportWriter等开发工具,适用于专业开发人员。

2.2用户界面

该程序设计的界面如图-3所示,风格简洁。

图-3程序设计的界面

3.各模块功能及软件开发

3.1各模块功能简介

在该程序的设计中,要使用到以下常用控件,见表-1。

表-1常用控件

控件名称

类型

作用

frmMain

Form

CHAT主窗体

Winsock1

Winsock

连接控件

Label1

Label

CONNECTWITHIP标签

Label2

Label

LOCALPORT标签

Label3

REMOTEPORT标签

txtRemoteIP

TextBox

远程IP地址输入框

txtLocalPort

本地PORT输入框

txtRemotePort

远程PORT输入框

cmdConnect

CommandButton

连接CONNECT按钮

Label4

TypeyourtextandhitEntertosendit.标签

Frame1(remoteip)

Frame

REMOTEIP框架

Frame2(hostip)

Frame

HOSTIP框架

Text1

显示对方(远程主机)发送的CHAT内容

Text2

输入己方(本地主机)要发送的CHAT内容,按ENTER键发送

cmdClear

清空输入框(TEXT2)和显示框(TEXT1)中的内容

StatusBar1

StatusBar

状态栏

常用控件简介

窗体控件(Form):

窗体(Form)是设计图形用户界面的基本平台,所有的控件都是绘制在窗体上的。

程序运行时的每一个窗体对应于程序的一个窗口,是用户与应用程序交互操作的场所。

文本框(TextBox):

文本框是VB的一个重要控件,可用来显示和输入数据。

实质上,文本框控件相当于一个简单的文本编辑器,它具有复制、剪切、粘贴和删除等功能,只不过在文本框中只能输入或显示最大为32768字节(32KB)的字符串。

标签框(Label):

标签的功能比较简单,通常用来显示比较固定的提示性信息,不允许用户在程序运行时输入数据。

按钮(Command):

命令按钮是Windows程序中常见的一种命令控制方式,用于接收用户的操作信息,并引发应用程序的某个操作。

如同日常生活的按钮一样,当用户用鼠标单击命令按钮或选中命令按钮单击<

Enter>

回车键时,就会激活相应的事件过程,所以有时命令按钮也简称为“按钮”。

框架(Frame):

框架是一种比较特殊的容器控件,常作为辅助性控件使用,可将多个选项按钮或复选框控件按功能分组。

当用框架将多个控件划分成一组时,应先在窗体上放置框架,然后再在框架控件内放置其他控件。

控件WinSock:

  该控件是Windows下的应用程序与网络协议之间的标准接口。

利用WinSock控件可以与远程计算机建立连接,并通过用户数据文报协议(UDP)或者传输控制协议(TCP)进行数据交换。

这两种协议都可以用来创建客户与服务器应用程序。

与Timer控件类似,WinSock控件在运行时是不可见的。

在本设计中我们用到了以下几个WINSOCK的属性:

  1)PROTOCOL(控制协议)属性,在本设计中,我们将PROTOCOL属性设置为sckUDPProtocol。

  2)属性RemoteHost是远程主机的地址,LocalPort、RemotePort分别本地主机的端口和远程主机端口,对客户来说,该属性指定发送数据的本地端口,而对于服务器来说,这是用于侦听的本地端口,我们在设置这两个属性时必须保证两台主机的端口值符合下面规则,即主机1的LocalPort等于主机2的RemotePort值,同样主机1的RemotePort等于主机2的LocalPort值,这样才能保证两机通讯的正常进行。

  3)LocalIP属性用于返回本地机器的IP地址,格式是IP地址加点的字符串(xxx.xxx.xxx.xxx)。

  在本设计中我们用到了以下几个WINSOCK的方法:

  1)在创建UDP应用程序时调用了Bind方法,这是必须的。

Bind方法的作用是为控件“保留”一个本地端口。

例如,如果将控件绑定到1001号端口,那么其它应用程序将不能使用该端口进行“监听”。

该方法阻止其它应用程序使用同样的端口。

  2)SendData方法用于发送一条数据给另一台主机,使用这个方法的语法是:

WinSock.SendData[要发送的数据]

  3)GetData方法。

当DataArrival事件出现时,代码调用GetData方法获取数据,并将数据存储在字符串变量中。

使用语法是:

WinSock.GetData[接收数据的变量]

在本设计中我们用到了以下WINSOCK的事件:

  DataArrival事件:

在本设计中我们使用了DataArrival事件,DataArrival事件在当新数据到达时被触发的事件,使用的语法为:

WinSock1_DataArrival(bytesTotalAsLong)       

变量bytesTotal表示获取的数据总数量。

在两个WINSOCK控件中间发送数据,关键要完成以下三步:

1、将RemoteHost属性设置为另一台计算机的IP地址。

  2、将RemotePort属性设置为第二个控件的LocalPort属性。

  3、调用Bind方法,指定使用的LocalPort。

3.2软件开发流程

以下介绍软件的编制步骤:

1.打开VisualBasic6.0的集成开发环境,创建一个新的标准EXE文件。

将缺省的窗体名修改为frmMain,并将其Caption属性修改为“局域网聊天程序”。

2.在窗体中添加一个WinSock控件,在其“属性”页上,单击“协议”,并将协议修改为sckUDPProtocol。

尔后陆续添加其他控件(详见3.1节内容),并修改其相应的属性。

3.编写代码,由于代码较长,这里不再展开叙述,详见附录。

4.代码编写完成后,将程序生成“Chat.EXE”文件,到此该软件开发完成。

4.软件调试分析

将“Chat.EXE”程序,分别安装到局域网内的两台计算机上,如图-4所示。

图-4程序调试图

按照图中的标注,分别设置A、B两台计算机中Chat.exe程序的各项参数。

然后点击“连接”,连接成功后,在程序的状态栏中会显示“连接成功”字样,此时聊天方可进行。

图-5软件调试图

5.设计心得

这次课程设计的核心是熟练掌握VB语言,并将它运用到网络设计中。

如何将课本中基本的程序代码,正确灵活得运用到实际程序当中,并能够使其发挥作用,保证程序的正常运行是难点。

在此次设计当中,最常出现的问题就是当运用到哪个控件和代码时,有印象但必须借助课本才能准确书写,又或者在某项任务中,不知该如何选择程序,这都是基本功不扎实的表现。

因此,反复巩固vb语言的的基本知识,多动手多动脑是学好vb语言的关键。

通过这次课程设计,对vb语言的实际应用有了更加深刻的体验,并且可以将他用到自己的其他专业课程中,这是学以致用的精髓体现。

参考文献

(1)VB程序设计胡闫宏印。

北京:

电子工业出版社,2006(宋体五号)

(2)计算机网络张增量李生元。

西安:

西安交通大学出版社

附录

OptionExplicit

PrivateIgnoreTextAsBoolean

'

------------------------------------------------------------------------------

当CLEAR按钮按下时,清空TEXT1和TEXT2中的内容

PrivateSubcmdClear_Click()

OnErrorResumeNext

Text1="

"

WithText2

'

清空输入框

.Text="

"

并把焦点置于TEXT2

.SetFocus

EndWith

EndSub

当CONNECT按钮按下时,进行以下操作

PrivateSubcmdConnect_Click()

OnErrorGoToErrHandler

WithWinsock1

设置RemoteHost属性

.RemoteHost=Trim(txtRemoteIP)

设置RemotePort属性

RemotePort属性的值应该等于远程主机上的LocalHost属性的值

.RemotePort=Trim(txtRemotePort)

'

LocalPort属性的值是不能改变的,必须检查它是否已经被设置

如果LocalPort属性为空(没有被设置),将其设为在LocalPort输入框中输入的数值

If.LocalPort=EmptyThen

.LocalPort=Trim(txtLocalPort)

Frame2.Caption=.LocalIP

这是必须的,Bind方法的作用是为控件“保留”一个本地端口,防止被其他用户调用。

.Bind.LocalPort

EndIf

为了保证使用者不能改变LocalPort的值,将txtLocalPort输入框锁定

txtLocalPort.Locked=True

在状态栏中显示“正在连接”的状态

StatusBar1.Panels

(1).Text="

Connectedto"

&

Winsock1.RemoteHost&

如果连接正常,做以下设置

Frame1.Enabled=True

Frame2.Enabled=True

Label4.Visible=True

Text2.SetFocus

ExitSub

如果在连接过程中出现错误,则转向ErrHandler:

,并显示错误提示

ErrHandler:

MsgBox"

Winsockfailedtoestablishconnectionwithremoteserver"

vbCritical

当按下“F1”键时显示帮助信息

PrivateSubForm_KeyDown(KeyCodeAsInteger,ShiftAsInteger)

IfKeyCode=vbKeyF1Then

ChDirApp.Path

调用外部程序notepad.exe来打开帮助文本文件

Shell"

notepad.exereadme.txt"

vbNormalFocus

EndIf

当窗体加载时显示提示信息并在txtRemoteIP框中显示本地主机的IP

PrivateSubForm_Load()

Show

WinsockUDTChat"

vbCrLf&

byTheoKandiliotis(ionikh@hol.gr)"

F1forhelp."

vbInformation

txtRemoteIP=Winsock1.LocalIP

接收TEXT2输入框的按键,并做响应

PrivateSubText2_KeyPress(KeyAsciiAsInteger)

定义变量Last_Line_Feed来记录最后输入行的位置

StaticLast_Line_FeedAsLong

定义New_Line字符串记录新键入的一行文本的内容

DimNew_LineAsString

如果使用者按下CLEAR按钮对输入框内容清空,这时TEXT2为空,则重设最后输入行的位置为0

IfTrim(Text2)=vbNullStringThenLast_Line_Feed=0

当使用者按下ENTER键时

IfKeyAscii=13Then

取得最后输入行的内容并赋值给New_Line字符串

New_Line=Mid(Text2,Last_Line_Feed+1)

重设最后输入行的位置

Last_Line_Feed=Text2.SelStart

通过WINSOCK发送新输入的一行文本的内容

Winsock1.SendDataNew_Line

在状态栏显示发送信息

StatusBar1.Panels

(2).Text="

Sent"

(LenB(New_Line)/2)&

bytes"

当WINSOCK接收到新的数据(信息)时,进行以下响应

PrivateSubWinsock1_DataArrival(ByValbytesTotalAsLong)

定义New_Text字符串来记录新接收的信息

DimNew_TextAsString

接收信息并赋值给New_Text

Winsock1.GetDataNew_Text

在TEXT1显示框中显示新接收到的信息

Text1.SelText=New_Text

Frame1.Caption=Winsock1.RemoteHostIP

在状态栏中显示接收信息

StatusBar1.Panels

(2).Text="

Recieved"

bytesTotal&

bytes"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1