- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课题二:文件传输协议的简单设计与实现
摘要
文件传送协议FTP是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。文件传输协议的简单设计与实现建立在计算机网络实验环境TCP/IP 网络体系结构之上,使用Winsock 编程接口编写两个程序,分别为客户程序(client.c)和服务器程序(server.c),实现下述命令功能:get , put, pwd, dir, cd, ?, quit 等,利用了已有网络环境设计并在C/S模式下实现简单应用层协议。
本课程设计包括了具体设计任务,基本思路及所涉及的相关理论,设计流程图,调试过程中出现的问题及相应解决办法,实验运行结果,核心程序,个人体会及建议等。
关键词:TCP/IP协议 FTP协议 Winsock编程接口 C/S模式
1.设计任务及要求
1.1 设计任务
设计和实现一个简单的文件传送协议。
1.2 设计要求
用socket 编程接口编写两个程序,分别为客户程序(client.c)和服务器程序(server.c),该程序应能实现下述命令功能:
get:取远方的一个文件
put:传给远方一个文件
pwd:显示远主当前目录
dir:列出远方当前目录
cd :改变远方当前目录
? :显示你提供的命令
quit :退出返回
这此命令的具体工作方式(指给出结果的形式)可以参照FTP 的相应命令,有余力的同学可以多实现几个命令。最后,写出实验报告。
2.基本思路及所涉及的相关理论
2.1 基本思路
已知服务器的IP地址,设计程序使客户端连接。此时服务器端处于监听状态,客户端发起连接请求,然后两个接收端口进行连接。建立各个命令功能对应的函数,发送命令,等待服务器端的服务。服务器端初始化WinSock,创建SOCKET,获取主机信息,并对客户端进行会话,发送回复讯息给客户端,响应完毕后关闭连接,释放WinSock。
2.2 相关理论
文件传送是各种计算机网络都需要实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。计算机网络实验环境建立在TCP/IP 网络体系结构之上。各计算机除了安装TCP/IP 软件外,还安装了TCP/IP 开发系统。实验室各计算机具备Windows环境中套接字socket 的编程接口功能,可为用户提供全网范围的进程通信功能。本设计利用这些功能,设计和实现一个简单的文件传送协议。用socket 编程接口编写两个程序,分别为客户程序(client.c)和服务器程序(server.c)。
3.方案设计
3.1 主要网络设备
联网计算机。
3.2 网络拓扑结构设计图
4.具体步骤
4.1 调试步骤
服务器端运行,默认自动启动监听,情况如下图:
在客户端输入服务器端的IP和端口号进行连接,效果如图:
显示远方当前目录的文件:
下面演示下载一个txt文件:
下载完成后,指定目录下就有了该文件了。
改变当前服务器路径。
显示上一层目录:
下面演示上传一个txt文件给服务器端:
上传完成后,指定目录下就有了该文件了。
4.2 核心程序
4.2.1 服务器端Sever程序
#include Winsock.h
#include windows.h
#include stdio.h
#define RECV_PORT 2384
#define SEND_PORT 3384
#pragma comment(lib, wsock32.lib)
SOCKET sock,sock1,sockdir,sockput,sockget;
sockaddr_in ServerAddr;
sockaddr_in ClientAddr;
int Addrlen;//地址长度
char filename[20];//文件名
char order[10];//命令
char rbuff[1024];//接收缓冲区
char sbuff[1024];//发送缓冲区
//初始化winsock
DWORD StartSock()
{
WSADATA WSAData;
if(WSAStartup(MAKEWORD(2,2),WSAData)!=0)
{
printf(sock init fail!\n);
return (-1);
}
return(1);
}
DWORD CreateSocket()
{
sock=socket(AF_INET,SOCK_STREAM,0);
if(sock==SOCKET_ERROR)
{
printf(sock
您可能关注的文档
最近下载
- 具身智能机器人操作系统与应用技术.pdf VIP
- 具身机器人行业市场前景及投资研究报告:具身智能大脑,人形机器人发展.pdf VIP
- 半导体外延工艺技术发展趋势.pptx VIP
- 离散制造数字化智能工厂解决方案.pdf VIP
- 2025年度华医网继续教育答案-常见心血管疾病的中西医结合诊疗策略.docx VIP
- GB∕T 1355-2021 小麦粉 GB∕T 1355-2021 小麦粉.pdf
- 欧洲人的标准 EN10088-1-2005-Eng.pdf VIP
- Panasonic XQG70-E70XS E70GS E70GWwashing machine Manual说明书用户手册.pdf
- 函数的定义与函数的性质.pptx VIP
- 人工智能行业市场前景及投资研究报告:养老机器人,AI养老.pdf VIP
文档评论(0)