东南大学计算机与网络第四次实验.doc

东南大学计算机与网络第四次实验.doc

ID:58489099

大小:283.50 KB

页数:19页

时间:2020-05-17

东南大学计算机与网络第四次实验.doc_第1页
东南大学计算机与网络第四次实验.doc_第2页
东南大学计算机与网络第四次实验.doc_第3页
东南大学计算机与网络第四次实验.doc_第4页
东南大学计算机与网络第四次实验.doc_第5页
资源描述:

《东南大学计算机与网络第四次实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、东南大学自动化学院实验报告课程名称:信息通信网络概论第4次实验实验名称:设计协议院(系):自动化专业:自动化姓名:学号:实验室:金智楼实验组别:同组人员:实验时间:2013年12月23日评定成绩:审阅教师:目录一.实验目的和要求………………………………………………3二.实验原理………………………………………………………3三.实验方案与实验步骤…………………………………………4四.实验设备与器材配置…………………………………………5五.实验记录………………………………………………………5六.实验总结………………………………………………………9七.思考题或讨论题…………………………

2、……………………9一.实验目的和要求目的:1.设计简单的应用层协议,2.开发基于TCP/IP或UDP/IP的网络通信程序,实现数据传送和文件传输。要求:1.正确理解应用层协议的概念;2.更深入了解客户/服务器模式的网络程序设计。二.实验原理1.应用层协议应用层协议的定义包括如下内容:(1)交换的报文类型,如请求报文和响应报文;(2)各种报文类型的语法,如报文中的各个字段公共详细描述;(3)字段的语义,即包含在字段中信息的含义;(4)进程何时、如何发送报文及对报文进行响应。有些应用层协议是由RFC文档定义的,因此它们位于公共领域。例如,web的应用层的协议HTTP(超文本传输协议

3、,RFC2616)就作为一个RFC供大家使用。如果浏览器开发者遵从HTTPRFC规则,所开发出的浏览器就能访问任何遵从该文档标准的web,服务器并获取相应的web页面。还有很多别的应用层协议是专用的.不能随意应用于公共领域。例如,很多现有的P2P文件共享系统使用的是专用应用层协议。目的,应用层协议主要有以下几种。2)SOCKET编程服务器要创建一个用于侦听的套接字,为该套接字分配地址之后,调用listen()函数使它处于侦听状态;客户机在创建套接字完毕后,为套接字分配地址,然后调用connect()函数,请求与服务器套接字连接;服务器套接字在收到客户机的连接请示后,调用acce

4、pt()函数,该函数创建一个用于连接的套接字。应用该套接字和客户机上的连接套接字,用户就可以在服务器和客户机之间进行数据传输了。在结束传输之后,客户机调用closesocket()函数关闭套接字,服务器也调用该函数关闭用于侦听和连接的套接字。Socket()Bind()Listen()服务器侦听套接字Connect()Accept()Closesocket()Send()Recv()创建连接套接字客户机连接套接字Socket()Bind()Recv()Send()Closesocket()Closesocket()一.实验方案与实验步骤1.基于TCP的socket编程1)服务端

5、1)建立Socket初始化WinSock的动态连接库后,需要在服务器端建立一个监听的Socket,为此可以调用Socket()函数用来建立这个监听的Socket,并定义此Socket所使用的通信协议。此函数调用成功返回Socket对象,失败则返回INVALID_SOCKET(调用WSAGetLastError()可得知原因,所有WinSocket的函数都可以使用这个函数来获取失败的原因)。2)绑定端口接下来要为服务器端定义的这个监听的Socket指定一个地址及端口(Port),这样客户端才知道待会要连接哪一个地址的哪个端口,为此我们要调用bind()函数,该函数调用成功返回0,

6、否则返回SOCKET_ERROR。3)监听当服务器端的Socket对象绑定完成之后,服务器端必须建立一个监听的队列来接收客户端的连接请求。listen()函数使服务器端的Socket进入监听状态,并设定可以建立的最大连接数(目前最大值限制为5,最小值为1)。该函数调用成功返回0,否则返回SOCKET_ERROR。服务器端的Socket调用完listen()后,如果此时客户端调用connect()函数提出连接申请的话,Server端必须再调用accept()函数,这样服务器端和客户端才算正式完成通信程序的连接动作。为了知道什么时候客户端提出连接要求,从而服务器端的Socket在恰

7、当的时候调用accept()函数完成连接的建立,我们就要使用WSAAsyncSelect()函数,让系统主动来通知我们有客户端提出连接请求了。该函数调用成功返回0,否则返回SOCKET_ERROR。1)服务器端接受客户端的连接请求当Client提出连接请求时,Server端hwnd视窗会收到WinsockStack送来我们自定义的一个消息,这时,我们可以分析lParam,然后调用相关的函数来处理此事件。为了使服务器端接受客户端的连接请求,就要使用accept()函数,该函数新建一Socket

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。