欢迎来到天天文库
浏览记录
ID:12096760
大小:653.50 KB
页数:9页
时间:2018-07-15
《服务器客户机交互程序实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、客户—服务器交互程序设计学院名称:专业:班级:姓名:实验客户—服务器交互程序设计一..实验目的1.掌握客户-服务器交互模型的概念与特点。2.掌握网络应用程序的开发方法;3.掌握Client/Server结构软件的设计与开发方法;4.掌握Socket机制的工作原理。二..实验前的准备1.阅读教材关于TCP/IP协议和Socket的相关内容;2.阅读WinSock编程指南;3.熟悉VB开发工具。三..实验内容使用Win32Socket函数实现client/Server通信:首先正确设置LocalPort与RemoteHost属性,然后调用SendData方法发送数据,并在
2、另一端产生DataArrive事件。在该事件中调用GetData方法就可以接受数据。1.Winsock控件-主机之间利用TCP通信客户程序:RemoteHost属性、RemotePort属性、Connect方法服务器程序:LocalPort属性、Listen方法、ConnectionRequest事件、Accept方法。发送和接收数据:SendData、DataArrival事件、GetData方法2.Winsock控件-主机之间利用UDP通信服务器程序:LocalPort属性、RemoteHost属性、RemotePort属性、SendData方法、DataArri
3、val事件、GetData方法客户程序:RemoteHost属性、RemotePort属性、SendData方法、DataArrival事件、GetData方法3.利用Winsock控件编写简单的客户—服务器程序(1)服务器程序:在UDP的2000端口守候客户的请求信息;收到客户的“Date”请求:响应日期;收到客户的“Time”请求:响应时间;(2)客户程序:发送“Date”和“Time”请求;显示收到的响应。四..实验要求1.按实验内容进行软件编制和调试;2.编写一个服务端与客户端,进行功能测试,记录测试结果;3.给出程序结论,以及对出现的问题进行分析。五..实验
4、步骤一、服务器程序:1.新建服务器的相应对象:新建一个工程为工程1,拥有一个窗体,名为form,caption为UDP服务器,在这个窗体上有:一个标签,名为Lable1,caption为UDP服务器日志,还有一个文本框,名为Lstlog,它的Text属性初始值为空,是为来显示服务器,处理请求的记录,属于保护安全性的。还有一个我认为比较重要的就是Winsock控件,名为:WinsockServer,LocalPort:2000Protocol为:1–sckUDPprotocol。如图1。图1在这部分我认为比较难的是:Winsock可以很容易地访问TCP和UDP网络服务。
5、在编写客服和服务器应用程序时,不需要了解TCP/IP网络的技术细节,也不需要了解调用底层socketAPI函数的具体细节。通过设置Winsock制件的属性和调用该控件的方法,可以容易地连接到远程计算机并进行双向的数据交换。端口号:由于一个主机可以运行多个服务器程序,因此,必须提供一套机制让客户程序没有歧义的使用指定的对应的服务。这种机制要求给每个服务一个唯一的标志(这便是端口号)同时要求服务器程序和客户程序都使用这个标志。当服务器程序开始执行时(服务器处于等待状态),首先在服务器主机上注册自己提供服务所使用的标志。在客户需要使用服务器的提供的服务时,则利用服务器使用的
6、标志(端口号)指定所应的服务。一旦运行服务器程序的主机接收到一个具有特定标志(相对应的端口号)的服务请求,它就将该请求转交给注册该特定标志的服务器程序处理。这个实验中是用LocalPort:2000这个来标识服务的端口号的。这个在刚开始的时候没有理解。为什么要使用端口号,以及如何使用,通过这个实验有了一定的了解。2.服务器程序对应的代码(如图2):图2第一部分的程序:PrivateSubForm_Load()WinsockServer.Bind2000EndSub窗口在被装载的时候执行:WinsockServer.Bind2000即使用WinsockServer相对应
7、的方法。第二部分的程序:PrivateSubWinsockServer_DataArrival(ByValbytesTotalAsLong)DimstrRec,strSendAsStringWinsockServer.GetDatastrRec,vbStringSelectCasestrRecCase"Date","date","DATE"strSend=DateCase"Time","time","TIME"trSend=TimeCaseElsestrSend="错误请求"EndSelectWinsockServer.SendDatastrSend
此文档下载收益归作者所有