实验五 IO模型实验.doc_第1页
实验五 IO模型实验.doc_第2页
实验五 IO模型实验.doc_第3页
实验五 IO模型实验.doc_第4页
全文预览已结束

下载本文档

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

文档简介

网络程序设计实验报告 实验名称: I/O模型实验 指导教师: 贾浩 专业班级: 姓 名: 学 号: 实验地点: 实验日期: 实验成绩:_ 1、 实验目的l 掌握WinsockI/O模型工作原理;l 熟悉I/O模型中使用的Winsock接口函数;l 掌握使用I/O模型进行网络程序设计的编程步骤;2、 实验设计(一)实验要求如下:1、在上述I/O模型中自选一个I/O模型,构建一个TCP服务器,该服务器能: 接受客户端连接时显示客户端的IP,PORT信息 接收客户端连接时显示其连接编号,客户端退出时显示关闭的连接编号 能显示客户端发来的数据 能从键盘输入数据并发到客户端 其他数据传送功能(可选)2、 编写客户端程序,使之能: 从键盘输入数据并发送到服务器 能接收服务器发来的数据 当输入“bye”时退出程序(二)、设计: 1.、设计服务端程序,服务端程序首先需要创建套接字并监听,等待用户连接上后,获取客户端的IP、PORT信息,并为该连接编号,记录其编号,在客户端发来信息或退出程序时显示其连接编号,接受用户发来的信息并显示,获取用户在服务器端的输入并发送到客户端。 2.设计客户端程序,客户端首先需要创建套接字并连接到服务器端,然后接受用户输入的数据并传输给服务器端,等待服务器端将发送的数据,在每次接受输入时需要判断其输入的字符串是否是“bye”,如果是则退出程序,否则继续连接。3.服务器端程序流程图如下:三、实验过程1.针对实验要求设计代码2.编写代码实现要求3.实验结果【图片待补充】服务器端程序运行效果第一个连接服务器端的客户端运行效果第二个连接服务器端的客户端运行效果第三个连接服务器端的客户端运行效果4、 讨论与分析1.你所选用的I/O模型是如何判断套接字上何时可以收发数据的或者数据收发已完成的?答:我选择的是选择模型,在使用选择模式时,会用到三个套接字集合,readfds用于检查套接字集合中套接字是否可读,writefds用于检查其可写性,最后一个excpetfds用于检查错误。当有数据可读,连接已经关闭、重启或是中断,有未决的连接请求时,readfds受信。当数据能够发送和连接成功调用connect时,writefds受信。当连接失败和OOB数据可读时,excpetfds受信。只需调用select函数将套接字集合遍历,当套接字上有数据可接受时,可得到该受信的套接字并执行相应的操作。当已经完成时,也会将该套接字从集合中删去。2.简述你所使用的I/O模型的编程步骤答:使用选择模型的编程步骤大致为:(1) 初始化套接字结合fdSocket,向这个集合添加监听套接字句柄;(2) 将fdSocket集合的拷贝fdRead传递给select函数,当有事件发生时,select函数移除fdRead中没有未决I/O操作的套接字句柄,然后返回;(3)比较原来fdSocket集合与select处理过的fdRead集合,确定哪些套接字有未决的I/O,并进一步处理这些I/O;(4)回到第二步继续处理。3.在你所使用的I/O中如何判断发生网络事件或者IO完成的套接字?答:选择模型是通过select函数去处理套接字集合,并将其中没有未决I/O的套接字,即IO完成的套接字移除,然后遍历处理后的套接字集合,此时套接字集合中只剩下有网络事件的套接字。五、实验者自评通过本次实验,对WinsockI/O模型工作原理有了进一步了解和熟悉,并熟悉了I/O模型中使用的Winsock接口函数,掌握了使用I/O模型进行网络程序设计的编程步骤。尤其是对选择模型有了深入的了解,掌握了其判断套接字上何时可以收发数据的或者数据收发已完成的原理,判断发生网络事件或者IO完成的套接字的原理,对其他模型的理解也更加深入。实验过程中,遇到困难积极向同学寻求帮助,并查阅资料,很好地将问题解决了,自己的编程和调试代码的能力也得到了提高3、 附录:关键代码(给出适当注释,可读性高

温馨提示

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

评论

0/150

提交评论