实验基于网络通信协议的设计.ppt_第1页
实验基于网络通信协议的设计.ppt_第2页
实验基于网络通信协议的设计.ppt_第3页
实验基于网络通信协议的设计.ppt_第4页
实验基于网络通信协议的设计.ppt_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

实验三基于网络通信协议的设计 一 实验目的 了解通信协议的基本工作原理了解Winsock的编程方法设计一个简单基于通信协议的应用程序 二 实验说明 Internet是国际性的通信网络的集合体 它集现代通信技术和现代计算机技术于一体 是计算机之间进行国际信息交流和实现资源共享的良好手段 Internet提供各种各样的服务 Telnet FTP 电子邮件 网络新闻服务 文档查询索引服务及其它信息服务 Internet上信息传递基于TCP IP 传输控制协议 互联网协议 协议 网络编程 Windows网络编程UNIX网络编程JAVA网络编程Web客户 服务器端编程 Windows网络编程 Windows环境下的Internet编程主要是进行Sockets编程 Winsock是MicrosoftWindows提供的网络编程接口 它提供了基于TCP IP协议的接口实现方法 TCP IP的结构 通过网路进行数据通信 需要用地址来标识网路中的主机 这样才能保证数据正确的发送到主机 TCP IP协议使用IP地址作为网络中主机的标识 而且每台主机的IP地址是唯一的 从而实现通过IP地址建立彼此之间的联系 通常情况下 由于每台主机上运行不止一个应用程序 所以为使应用程序间建立连接 还需要一个地址标识 在TCP IP协议中使用端口 Port 来作为主机上运行的应用程序的标识号 因此 TCP IP协议中一个有效的网络地址包括IP地址和端口地址 TCP IP协议提供两种同其它主机进行通信的方式 TCP方式和UDP方式TCP方式 是一种面向连接的服务 它在两个主机间建立连接 提供双向 有序且无重复的数据流服务 以及流量控制 差错检测和纠错等服务 保证数据的可靠传输 UDP方式 是一种双向的无连接数据服务 它把数据发送出去但并不进行差错控制和检查 所以不能保证数据可靠性 因而用于少量数据的传输 三 实验内容 利用Winsock控件编写TCP应用程序或者UDP应用程序 Winsock简介 Winsock控件属性Bytereceived接受到的数据字节数LocalHostName本地主机名LocalIP本地IP地址LocalPort本地机器通信程序的端口RemoteHost远程机器名RemoteHostIP远程机器的IP地址RemotePort远程通信端口地址SocketHandle提供给调用WinsockAPI的句柄参数State连接的当前状态Protocol设置使用的协议TCP或UDP State连接状态 State常数值描述sckclosed0关闭状态sckopen1打开状态scklistening2监听状态sckconnectionsuspending3连接挂起sckresolvinghost4解析域名sckconneting5正在连接sckconnected6已建立连接sckclosing7正在关闭sckerror8出错 Winsock控件方法 Accept方法用于接收一个连接请求 在用TCP建立连接时 当有连接请求到来就用此方法接受请求以建立连接 调用格式 winsock对象 AcceptRequestIDBind方法在存在多协议接口卡的情况下 用此方法把接口卡和IP地址捆绑在一起 调用格式 winsock对象 Bind端口号 IP地址 Close方法关闭一个TCP连接 调用格式 winsock对象 closeConnect方法用于向远程主机发出连接请求 调用格式 winsock对象 connect 远程主机IP 远程端口 GetData和PeekData方法都是用来取得接收到的数据 GetData取回后要清除接收缓冲区 PeekData不清除接收缓冲区 调用格式 winsock对象 getdata peekdata 变量 数据类型 最大长度 Listen方法用于服务器程序 等待客户访问 调用格式 winsock对象 listenSendData方法用于发送数据 可用在TCP和UDP两种方式下 调用格式 winsock对象 SendData数据 Winsock控件事件 Close事件当远程计算机关闭连接时出现 Connect事件当一个Connect操作完成时发生 使用Connect事件确认已经成功建立了一个连接 ConncetRequest事件当远程计算机请求连接时出现 仅适用于TCP服务器应用程序 在请求一个新连接时激活该事件 激活事件之后 RemoteHostIP和RemotePort属性存储有关客户的信息 服务器可决定是否接受连接 参数 repuestID为连接请求标识 DataArrival事件当新数据到达时出现 Error事件发生错误时出现 SendProgress事件在发送数据期间出现 SendComple事件在完成一个发送操作时出现 例 列车时刻表显示 服务器程序负责提供列车时刻表数据 客户端程序负责显示服务器所传递的内容 整个过程有下列步骤组成 1 服务器工作 聆听客户请求 2 客户请求建立连接 3 服务器响应 建立连接 4 客户请求时刻表数据 5 服务器接受请求 发送数据给客户 6 客户接受数据 进行显示并请求下一个数据 四 实验要求 确定应用程序的内容原理说明详细的设计思路及工作流程程序设计及程序清单设计总结参考文献 3 4参考资料 先在一台计算机上运行服务器程序 此时窗口上只有一个 退出 按钮 再在另一台计算机上运行客户机程序 在 连接 按钮右边的文本框中输入服务器的主机名后单击 连接 按钮 如果连接成功 则服务器和客户机程序窗口都会出现两个文本框 这时 两端都可以在上面的文本框中输入文字 这些文字会立即在下面的文本框中出现 服务器程序使用的控件如下 1 Command1 退出按钮 2 textsend 发送数据文本框 3 Winsockserver 服务器Winsock 4 textget 接收数据文本框 服务器程序的界面如图所示 服务器程序的源代码如下 PrivateSubCommand1 Click EndEndSubPrivateSubForm Load textsend Visible Falsetextget Visible FalseWinsockserver LocalPort 1001Winsockserver ListenEndSubPrivateSubtextsend Change Winsockserver SendDatatextsend TextEndSubPrivateSubWinsockserver Close Winsockserver CloseEndEndSubPrivateSubWinsockserver ConnectionRequest ByValrequestIDAsLong textsend Visible Truetextget Visible TrueIfWinsockserver StatesckClosedThenWinsockserver CloseWinsockserver AcceptrequestIDEndSubPrivateSubWinsockserver DataArrival ByValbytesTotalAsLong DimtmpstrAsStringWinsockserver GetDatatmpstrtextget Text tmpstrEndSub客户机程序使用的控件如下 1 Command1 退出按钮 2 Command2 连接按钮 3 Winsockclient 客户Winsock 4 Text1 主机名文本框 5 Textsend 发送数据文本框 6 Textget 接收数据文本框 客户机程序的界面如图所示 客户机程序的源代码如下 PrivateSubCommand1 Click EndEndSubPrivateSubCommand2 Click Winsockclient ConnectEndSubPrivateSubForm Load textsend Visible Falsetextget Visible FalseWinsockclient RemotePort 1001Winsockclient RemoteHost sccdsz EndSubPrivateSubText1 Change Winsockclient RemoteHost Text1 TextEndSubPrivateSubtextsend Change Winsockclient SendDatatextsend TextEndSubPrivateSubWinsockclient Close Winsockclient CloseEndEndSubPrivateSubwinsockclient Connect text

温馨提示

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

评论

0/150

提交评论