应用层协议的设计及实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
服务器程序源文件(serverDlg.cpp)
客户机程序源文件(clientDlg.cpp)
计算机网络案例教学
应用层协议的设计及实现
反思
1.协议规定了通信双方交换的数据格式
与采取的动作。应该是清晰的、无二义性的。 这样服务器器程序与客户机程序可由不同的
人按照协议文本分别实现,只要符合协议,
这两个程序一定能够正常配合运行。
与客户端间传输文件。
• 客户端给出文件名,则服务器寻找该文件,
若找到则传输给客户端。
• 找不到则报错。给出该协议的详细设计。
二、设计完协议后,再使用传统的C语
言套接字函数实现该协议。
计算机网络案例教学
应用层协议的设计及实现
问 题
•
同学们请考虑以下问题: 协议的基本结构是怎样的?
• 一、本协议应该包括哪些主要内容?本 • 二、C语言套接字函数可能有哪一些?
应用层协议的设计及实现
应用层协议的设计及实现
• 应用层协议主要规定两方面的内容:一是通 信双方交换数据的格式与顺序,二是通信双 方应该采取的动作。 • 应用层利用运输层实体提供的服务来完成某
种具体的应用。
• 这些服务以函数或对象的方法来体现。
计算机网络案例教学
应用层协议的设计及实现
案例内容
一、本协议的主要内容是在服务器端
议,最简单的办法利用开发工具中的套接字
对象,建立该对象后调用它的相关方法就能
实现数据的收发。 为更好地体会运输层协议提供的服务, 此次我们使用VC++开发工具,并使用传统 的套接字函数实现本协议。
计算机网络案例教学
应用层协议的设计及实现
协议的实现(二)
服务器程序使用的套接字函数主要有:
Listen(), accept(), send(), recv(), closesocket() 等。 客户机程序使用的套接字函数主要有: connect(), send(), recv(), closesocket()等。
2.编程实现应用层协议时,必须要用到
运输层提供的服务,可由套接字函数来提 供 ,也可以由套接字对象来提供。
计算机网络案例教学
计算机网络案例教学
应用层协议的设计及实现
协议的详细内容(二)
5.若查找不到该文件,或者无法打开,服务器
向客户发送4字节的全“0”数据,此次通信结束。
6.若成功打开该文件,服务器首先向客户发送4
字节的文件长度。这是一个整型无符号数字。 7.在发送完文件长度后,服务器开始发送整个 文件。发送完毕后结束通信。
计算机网络案例教学
应用层协议的设计及实现
协议的详细内容(一)
1.由于要传输各种类型的文件,本协议在运输层采用
可靠的TCP协议。 2.服务器端在固定端口10000监听。 3.客户首先向服务器发送欲传输的文件名(包含路径), 该项数据是变长的,是一个ASCII码字符串。 4.服务器收到文件名,在本地查找并打开该文件。
计算机网络案例教学
应用层协议的设计及实现
协议的详细内容(三)
8.客户发送完文件名后,先接收4字节数据, 若为全“0”,则结束通信,并向用户报错。
9.若4字节数据不是全“0”,则开始接收文件 内容,并写入硬盘。接收完毕后结束通信。
计算机网络案例教学
应用层协议的设计及实现
协议的实现(一)
目前的多种开发工具都可以实现本协
计算机网络案例教学
应用层协议的设计及实现
进源自文库步的问题
演示已编写好的服务器端与客户端程序。 服务器端程序(server.exe) 客户端程序 (client.exe)
同学们请继续考虑以下问题: 根据实现这个协议的两个程序,本协 议的详细内容应该是什么?给同学们10分钟 的时间,时间到时请同学上台讲一讲。