服务器客户机交互程序实验报告.doc_第1页
服务器客户机交互程序实验报告.doc_第2页
服务器客户机交互程序实验报告.doc_第3页
服务器客户机交互程序实验报告.doc_第4页
服务器客户机交互程序实验报告.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

客户服务器交互程序设计学院名称: 专 业: 班 级: 姓 名: 实验 客户服务器交互程序设计一.实验目的1. 掌握客户-服务器交互模型的概念与特点。2.掌握网络应用程序的开发方法;3.掌握Client/ Server结构软件的设计与开发方法;4.掌握Socket机制的工作原理。二.实验前的准备1.阅读教材关于TCP/IP协议和Socket的相关内容;2.阅读WinSock编程指南;3.熟悉VB开发工具。三.实验内容使用Win32 Socket 函数实现client/ Server通信:首先正确设置LocalPort与RemoteHost属性,然后调用SendData方法发送数据,并在另一端产生DataArrive事件。在该事件中调用GetData方法就可以接受数据。1.Winsock控件 - 主机之间利用TCP通信客户程序:RemoteHost属性、RemotePort属性、Connect方法服务器程序:LocalPort属性、Listen方法、ConnectionRequest事件、Accept方法。发送和接收数据:SendData、DataArrival事件、GetData方法2.Winsock控件 - 主机之间利用UDP通信服务器程序:LocalPort属性、RemoteHost属性、RemotePort属性、SendData方法、DataArrival事件、GetData方法客户程序:RemoteHost属性、RemotePort属性、SendData方法、DataArrival事件、GetData方法3.利用Winsock控件编写简单的客户服务器程序(1)服务器程序:在UDP的2000端口守候客户的请求信息;收到客户的“Date”请求:响应日期;收到客户的“Time”请求:响应时间;(2)客户程序:发送“Date”和“Time”请求;显示收到的响应。四.实验要求1.按实验内容进行软件编制和调试;2.编写一个服务端与客户端,进行功能测试,记录测试结果;3.给出程序结论,以及对出现的问题进行分析。五.实验步骤一、服务器程序:1新建服务器的相应对象:新建一个工程为工程1,拥有一个窗体,名为form,caption为UDP服务器,在这个窗体上有:一个标签,名为Lable1,caption为UDP服务器日志,还有一个文本框,名为Lstlog,它的Text属性初始值为空,是为来显示服务器,处理请求的记录,属于保护安全性的。还有一个我认为比较重要的就是Winsock控件,名为:WinsockServer,LocalPort:2000 Protocol为:1 sckUDPprotocol。如图1。图1在这部分我认为比较难的是:Winsock可以很容易地访问TCP和UDP网络服务。在编写客服和服务器应用程序时,不需要了解TCP/IP网络的技术细节,也不需要了解调用底层socketAPI函数的具体细节。通过设置Winsock制件的属性和调用该控件的方法,可以容易地连接到远程计算机并进行双向的数据交换。端口号:由于一个主机可以运行多个服务器程序,因此,必须提供一套机制让客户程序没有歧义的使用指定的对应的服务。这种机制要求给每个服务一个唯一的标志(这便是端口号)同时要求服务器程序和客户程序都使用这个标志。当服务器程序开始执行时(服务器处于等待状态),首先在服务器主机上注册自己提供服务所使用的标志。在客户需要使用服务器的提供的服务时,则利用服务器使用的标志(端口号)指定所应的服务。一旦运行服务器程序的主机接收到一个具有特定标志(相对应的端口号)的服务请求,它就将该请求转交给注册该特定标志的服务器程序处理。这个实验中是用LocalPort:2000这个来标识服务的端口号的。这个在刚开始的时候没有理解。为什么要使用端口号,以及如何使用,通过这个实验有了一定的了解。2服务器程序对应的代码(如图2): 图2第一部分的程序:Private Sub Form_Load() WinsockServer.Bind 2000 End Sub 窗口在被装载的时候执行:WinsockServer.Bind 2000即使用WinsockServer相对应的方法。第二部分的程序:Private Sub WinsockServer_DataArrival(ByVal bytesTotal As Long)Dim strRec, strSend As StringWinsockServer.GetData strRec, vbStringSelect Case strRecCase Date, date, DATEstrSend = DateCase Time, time, TIMEtrSend = Time Case ElsestrSend = 错误请求End SelectWinsockServer.SendData strSendlstlog.AddItem Now & 收到IP= & WinsockServer.RemoteHost & WinsockServer.RemotePort & 请求( & strRec & ),响应( & strSend & )End Sub服务器的控件 WinsockServer使用WinsockServer_DataArrival这个方法,当客户端的数据发送到时,执行这个程序。根据用户输入的数据,用Case语句判断,收到客户的“Date”(或DATE,date这是为了完成程序的健壮性)请求:响应日期。收到客户的“Time”(或TIME,time)请求:响应时间。lstlog.AddItem Now & 收到IP= & WinsockServer.RemoteHostIP & port=WinsockServer.RemotePort & 请求( & strRec & ),响应( & strSend & )这部分是往数据库日志文件中填入相应请求以及响应的信息。二、 客户程序1新建客户机的相应对象新建一个工程为工程2,拥有一个窗体,名为Client,caption为UDP客户端,在这个窗体上有:4个标签,它们的名称和Caption值分别对应为:Name=Lb1host、Cpation=服务器IP地址,Name=Lb1Port、Cpation=服务器端口,Name=Lb1Command、Cpation=请求命令,Name=Lb1Response、Cpation=服务器响应。4个文本框,它们的名称和Text属性值分别为:Name=TxtHost、Text=10.48.67.65(服务器的IP地址)Name=TxtPort、Text=2000(服务器具体服务对应的端口号)Name=TxtCommand、Text=Date(发送“Date”和“Time”请求,输入的相应请求的数据)Name=TxtResponse、Text值为空(用于显示服务器响应的收到相应数据)一个按钮,Name=BtnSend、Caption=发送。同样和服务器一样的有一个Winsock控件,名为:WinsockClinent,LocalPort:2002 Protocol为:1 sckUDPprotocol。如图3。 图32客户机程序对应的代码(如图4):图4 第一部分的程序: Private Sub BtnSend_Click()Dim strTxt As StringWinsockClient.RemoteHost = TxtHost.TextWinsockClient.RemotePort = TxtPort.TextstrTxt = TxtCommand.TextWinsockClient.SendData strTxtEnd Sub指定使用服务器的IP地址和对应服务的端口中,这个程序中,服务器的IP地址对应的是TxtHos的Text属性,端口号是TxtPort的Text属性。.用SetData方法向服务器发送数据。 第二部分的程序: Private Sub Form_Load() WinsockClient.Bind 2002 End Sub 窗口在被装载的时候执行:WinsockServer.Bind 2000即使用WinsockServer相对应的方法。第三部分的程序:Private Sub WinsockClient_DataArrival(ByVal bytesTotal As Long)Dim strRec As StringWinsockClient.GetData strRec, vbStirngTxtResponse.Text = strRecEnd SubWinsockClient.GetData strRec, vbStirng用GetData方法接受来自服务器的响应信息,同时清除缓存中的信息。TxtResponse.Text = strRec显示接收到的信息。三、 测试结果:a) 运行服务器端的程序(如图5): 图5b) 运行客户端的程序,向客户端发送请求(如图6): c)图6c) 服务器端的程序响应请求,客户端显示相应的信息(如图7): 图7d) 查看服务器端的日志文件(如图8):图8六.总结 首先我中在实验过程中遇到了这样的问题:没有执行服务器的程序就执行客户端的程序,违背了客户机/服务器的原理(服务器处于等待状态,等待着客户器的访问)。后来看了书在老师的帮助下解决了这个问题。错误提示如图9。图9 其次因为之前学过一点VB编程方面的知识,所以这次实验还是比较顺利的完成了。在这次实验中让我知道了,什么是Winscok控件对它也有了一定的了解. 它可以很容易地访问TCP和UDP网络服务。使我们在编写客服和服务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论