- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
华中科技大学 电子与信息工程系实验报告
- PAGE 2 -
- PAGE 1 -
电子与信息工程系
实 验 报 告
实验名称
WinSocket编程实验
课程名称
计算机网络
姓名
郭世康
学号
U201313639
日期地点
南一楼东204
成绩
教师
刘威
实验目的
1.掌握网络应用程序的开发方法;
2.掌握 Client/ Server 结构软件的设计与开发方法
3.掌握 Socket 机制的工作原理
4.实现server-client双向通信、client超时重传过程
实验环境
Windows7.0,集成开发环境codeblocks,simple-talk例程代码
实验内容与结果
(1)运行 simplex-talk 例程,理解代码并观察现象
(2)修改simplex-talk程序,编制duplex-talk程序,支持client和server的双向通信
程序整体功能:实现客户端与服务器的双向通信。
程序组成及各模块功能:程序由若干模块组成:主要为检查模块,检查是否出错以及是否与服务器/客户端建立了链接;传输数据模块,客户端向服务器发送数据和接受服务器发送的消息以及服务器接收数据及发送数据;关闭连接模块,断开客户端与服务器的链接;
重要的数据结构: WSADATA,hostent,sockaddr_in等数据结构;
程序清单:见附件;
运行及测试结果:
(3) 利用windows时间函数,编制一个简单的定时器,模拟client和server之间的stop-and-wait
程序整体功能:实现客户端与服务器之间的stop-and-wait动作,其中延时设置为2s,主要实现方法为server收到client发过来的数据后不回传ACK,导致client以为server没有收到,然后在延时过后重传数据;
程序组成及各模块功能:程序由若干模块组成,主要为检查模块,检查是否出错以及是否与服务器/客户端建立了链接;传输数据模块,客户端向服务器发送数据和接受服务器发送的消息以及服务器接收数据及发送数据;关闭连接模块,断开客户端与服务器的链接;
重要的数据结构: WSADATA,hostent,sockaddr_in等数据结构;
程序清单:见附件;
运行及测试结果:
思考题
无
实验中的问题
在刚开始时示例代码看不懂,弄懂simplex-talk都花了大量的时间和精力。其中recv、accept、send等函数弄明白参量都花费了大量的精力,然而并没有弄明白其中参量的具体意义,导致现在整个实验做完了都不是很清楚。
代码看的不是很懂,更不要说写代码了。在同学的帮助下我弄明白了这个程序的的大致模块分布和一些基本的算法思想,并且参考了大量同学的代码,其中还咨询了一些学长和学姐,总算有了一个整个的思路。然而在开始编写的时候又遇到了麻烦:CodeBlocks下的环境配置。运行示例代码的时候就出错,上网百度了好久都没有解决。这个问题就困扰了我大半天的时间,搞得我烦不胜烦,都不想搞了。最后还是隗巍同学告诉了我lib文件的导入方法及过程,环境配置才得以成功。
在编写代码的过程中,出现了N多次错误,一些函数更是不知道怎么使用,例如send、recv,在参考了同学的代码之后,总算有了一点头绪。后面服务器接口的使用也困扰了好久,后面学长提醒才知道,服务器用于连接请求和数据传输的端口要分开使用。服务器开放一个接口(s)用于监听来自客户端的连接请求,在建立连接后,会另外开放一个接口(new_s)用于和客户端通信,而原先的接口则用来处理其他客户端的连接请求。写了半天,终于写好了,编译链接也没有问题,然而实际运行的时候又崩盘了。。。不是client发出结果server收不到就是server发出结果client收不到。然后写写改改,改改写写,终于收到,然后运行,结果。。。呵呵呵呵,程序卡住,停止运行,当时就想砸电脑,忍住了,又回去看代码哪里错了,找来找去找了半天结果发现有一个printf的输出错了导致程序崩溃,那时候还不确定,试着把它去了结果运行成功,当时的心情就跟吃了人参果一样,全身上下渗透着一种舒爽,恨不得仰天长啸三声。
总之这个实验做成之前有一种想死的感觉,后面解决了问题之后又很爽,不过说实话,整个实验完了之后我还有一种云里雾里的感觉,有好多地方没有很清楚的弄明白,但是结果还是差强人意,最后还是完成了一些要求的功能,还是很开心的。
附件
1.
程序源代码
2.
参考文献列表
文档评论(0)