计算机网络实验报告2.docVIP

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 - 《计算机网络》课程实验报告 实验二:Socket通信编程 姓名 院系 计算机学院 学号 任课教师 钱权,张瑞,袁世忠 指导教师 张瑞 实验地点 计605 实验时间 周五5-6节 实验课表现 出勤、表现得分(10) 实验报告 得分(40) 实验总分 操作结果得分(50) 实验目的: 掌握Socket编程过程; 编写简单的网络应用程序。 实验内容: 利用你选择的任何一个编程语言,分别基于TCP 和UDP 编写一个简单的Client/Server 网络应用程序。具体程序要求参见《实验指导书》。 要求以附件形式给出: 系统概述:运行环境、编译、使用方法、实现环境、程序文件列表等; 主要数据结构; 主要算法描述; 用户使用手册; 程序源代码; 实验要求:(学生对预习要求的回答)(10分) 得分: Socket编程客户端的主要步骤 1、用socket()函数创建socket 2、设置目标服务器的IP地址和端口号 3、用connect()函数,与目标服务器连接 4、用Send()函数发送数据,recv()函数接收数据 5、关闭socket Socket编程服务器端的主要步骤 1、用socket()函数创建socket 2、用Bind() 函数将 socket 与本机上的一个端口相关联 3、用Listen() 函数使 socket 处于监听模式 4、用accept()函数让服务器接收客户的连接请求 5、用Send()函数发送数据,recv()函数接收数据 6、关闭socket 实验过程中遇到的问题如何解决的?(10分) 得分: 问题1: 设置IP地址时,刚开始设置成自己的本机的IP地址,但是将程序放到另一台电脑上时就需要修改IP地址。后来将IP地址设置成就解决了这一问题。是回送地址,指本地机,这样就不用改变本机地址了。 问题2: 做完基于TCP的Client/Server 编程后,在做基于UDP的编程的时候,以为在TCP的基础上,只要去掉连接服务器、监听、接受连接请求这些步骤就可以,结果无法实现自己想要的效果。后来发现UDP还有一些地方与TCP的不同,比如发送、接收数据的函数是sendto()、 recvfrom(),而不是send()、recv(),仔细查看课UDP的相关资料后也就实现了这一程序。 本次实验的体会(结论)(10分) 得分: 这次SOCKET编程一开始觉得无从下手,在网上找了好多资料才了解了socket的用法,仔细研究了之后发现只要掌握了客户端和服务端各自的运行规律,编写程序意外的简单。通过这次实验我明白了看问题一定要看本质,不能被看似很难的问题吓到。我一定会再接再厉,争取做好每一次实验。 思考题:(10分) 思考题1:(4分) 得分: 你所用的编程语言在Socket通信中用到的主要类及其主要作用。 socket 类:用于服务器端程序和客户端程序,实现双方的数据通信。 SOCKADDR_IN结构:记录端口地址、IP地址、协议族等信息。 思考题2:(6分) 得分: 说明TCP和UDP编程的主要差异和特点。 TCP和UDP是Socket的两种主要操作方式:面向连接的和无连接的。 无连接的操作使用UDP数据报协议,这个操作不需要连接一个目的的socket,它只是简单地投出数据报,快速高效,但缺少数据安全性。 而面向连接的操作使用TCP协议,一个这个模式的socket必须在发送数据之前与目的地的socket取得一个连接,一旦连接建立了,socket就可以使用一个流接口:打开-读-写-关闭,所有的发送的信息都会在另一端以同样的顺序被接收,面向连接的操作比无连接的操作效率要低,但数据的安全性更高。 基于TCP的socket编程是采用的流式套接字(SOCK_STREAM)。基于UDP采用的数据报套接字(SOCK_DGRAM).流式套接字的设计是针对面向连接的网络应用,在数据传输之前需要预先建立连接,在数据传输过程中需要维持连接,在数据传输结束后需要释放连接。由于采用校验和、确认与超时等差错控制手段,因 此流式套接字可以保证数据传输的正确性。 数据报套接字(SOCK_DGRAM)提供无连接的、不可靠的数据传输服务,实际上它是基于TCP/IP协议族中的UDP协议实现的。数据报套接字提供无序、有差错与有重复的数据流服务。数据报套接字的设计是针对无连接的网络应用,在数据传输之前不需要预先建立连接。由于只采用很有限的差错控制手段,因此数据报套接字无法保证数据传输的正确性。 所以TCP面向连接,安全可靠,而UDP面向数据,数据可能会丢失,但是高效,结构简单,网络开销小。 指导教

文档评论(0)

+ 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档