社区
C语言
帖子详情
用socket编写ftp客户端的主要思路是什么?
adeadsea
2013-02-19 05:39:06
又:有什么要注意的地方?
...全文
521
11
打赏
收藏
用socket编写ftp客户端的主要思路是什么?
又:有什么要注意的地方?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ForestDB
2013-03-04
打赏
举报
回复
发送完下载文件的命令后难道不需要新建文件来保存下载的文件? 一次就能全部读完发的数据?难道不需要循环读发过来的数据?
adeadsea
2013-03-02
打赏
举报
回复
感谢楼上各位的回复,我看了一个例子,以下是发送完下载文件的命令后的代码,但我看不太懂,为什么要创建一个新文件,循环又有什么用? /* 客户端创建文件 */ file_handle = open(disk_name, CRFLAGS, RWXALL); for( ; ; ) { ... ... /* 客户端通过数据连接 从服务器接收文件内容 */ read(data_sock, read_buf, read_len); /* 客户端写文件 */ write(file_handle, read_buf, read_len); ... ... }
xunilcyl
2013-02-28
打赏
举报
回复
@Self_Chou 如果是用FTP协议来传输的话,用二进制方式传输。不管什么类型的文件,都是由二进制数据组成的,所以只要把文件中的每一位都传输完,这个文件就传输完成了。断点续传的话,就是client发送命令REST recvLength命令(recvLength是client已经接收的字节数)告诉server,让server传送recvLength之后的数据过来。
zhouxf_cn
2013-02-27
打赏
举报
回复
借贵宝地一用,Linux下怎么传输压缩文件,还有怎么实现断点续传
xunilcyl
2013-02-27
打赏
举报
回复
回复4楼, 如果你仅仅是编写一个FTP客户端,是没必要看vsftpd的源码的。看了对你编写ftp客户端其实也没那么大的用处,除非你想自己编写一个ftp服务器。其实只要你的客户端符合RFC959,就可以和包括vsftpd在内的所有符合标准的ftp服务器交互。 另外给个建议,进行开发的时候最好开着一个抓包软件,这样你可以检查你编写的客户端发出去的信息是不是和你预料中的一样,便于调试。以前我测试的时候就是和ftp://kernel.org(貌似也是vsftpd服务器)进行通信的,非常方便。
帅得不敢出门
2013-02-22
打赏
举报
回复
可以直接利用curl库编写ftp程序
七擒关羽
2013-02-22
打赏
举报
回复
补充下好了: 1、FTP包含2条socket连接,一条用于命令传输,一条用于数据传输 2、查看下 命令控制用法,个别服务端不是全部支持,比如断点续传命令 3、大部分系统都自动裸FTP操作,可以自己敲命令实现一些基本功能,可以加深理解 4、对源码查看可以,但需要自己学会调式源码
adeadsea
2013-02-22
打赏
举报
回复
ls,感谢回复。 我说具体点,我要编的是与vsftpd通信的客户端,网上客户端编写例子基本看懂了,但vsftpd源码却太复杂了,有必要看吗?怎么看?
xunilcyl
2013-02-20
打赏
举报
回复
你不把自己的想法贴出来。也没办法针对性的给建议啊! 用winsock编写的话,首先肯定要学基本的winsock的几个基本函数WSAStartup(),sock(),connect(),send(),recv()这些的用法。然后就看RFC959。对FTP协议有个大概的概念。接下来就是编写一个简单的程序,比如向某个FTP服务器发送一个字符串,然后接收响应并打印出来。 FTP交互过程一般如下: 1. client调用connect(),与server三次握手建立TCP连接。 2. server给client发送欢迎信息。 3. client调用recv()获得欢迎信息,显示。 4. client调用send()发送命令,一般的格式给"COMMAND content\r\n"。其中COMMAND就是FTP命令了,如"USER user\r\n","PASS 123456\r\n"等。每条命令肯定是以\r\n结尾。 5. server调用recv()接收命令,解析命令,执行命令。然后调用send()发送执行的结果。执行的结果一般是应答码加上对应的描述。例如,如果登录成功的话可能发送“230 login\r\n”.详见RFC959。 6. client根据应答码执行对应的操作。若连接断开,可以跳到1;若发送下一条命令,跳到4。 单线程的client实现起来比较简单,在此基础上使用多线程进行改造,进而实现多线程下载,断点续传功能。 还有考虑一下各种异常情况的处理吧。 用MFC中的某个类(具体叫什么我也不记得,没用过)来编写的话就轻松多了。具体的细节到网上找一个源码看看就可以了。 最后要说的就是FTP控制端口是21,数据端口是20,。还有传输数据的时候两种模式要搞明白,主动模式 被动模式。
ShengFei01
2013-02-19
打赏
举报
回复
你找一下《WinSock网络编程经络》,有FTP的详细介绍和实现,这还有FTP的实现例子FtpClnt: http://download.csdn.net/detail/geoff08zhang/4571358
FingerStyle
2013-02-19
打赏
举报
回复
建立连接, 按照FTP协议发数据啊。 注意的地方 就是仔细看FTP协议的描述。
计网课设 C++实现
FTP
客户端
和 服务器端
文章目录一、
FTP
课本知识1.1 概述1.2 基本工作原理二、课设要求三、课设完成流程四、一些知识点五、代码六、参考知识 一、
FTP
课本知识 计算机网络第七版 谢希仁编著 1.1 概述
FTP
提供交互式访问,允许客户指明文件的类型和格式,允许文件具有存取权限。
FTP
屏蔽了各计算机系统的细节,因此适合于异构网络中任意计算机之间传送文件。RFC959很早就成为了互联网的正式标准。 1.2 基本工作原理
FTP
采用客户服务器模式,即Client-Server(C/S)结构。 一个
FTP
服务器进程可以同时为多个客户
C++ 简单
FTP
客户端
软件开发
题目 简单
FTP
客户端
软件开发(100分)网络环境中的一项基本应用就是将文件从一台计算机中复制到另一台可能相距很远的计算机中。而文件传送协议
FTP
是因特网上使用得最广泛的文件传送协议。
FTP
使用客户服务器方式。 设计要求: 1)以命令行形式运行 2)该
FTP
客户端
程序具有以下基本功能:能完成
FTP
链接的打开和关闭操作;能执行文件的上传和下载;能完成目录的创建、删除等有关操作。 3)设计中加入新的功能:登录,进入上级或下级目录 要求可以传输简单的文本文件。 设计
思路
1、分为两个端口,指令交流端口,数据交换端
AS3
socket
连接
FTP
历程
AS3
socket
连接
FTP
历程序相关技术实现过程简述注意事项 序 本文
主要
记录AS3(flash)基于
socket
连接
ftp
服务的处理过程,过程比较艰难,坑很多,记录下来,也许能够帮到有缘人。限于公司相关政策,未能放出全部源码请见谅,
主要
提供解决
思路
,以及相关问题的处理。 相关技术 AS3
socket
,
主要
用于
ftp
连接处理;
ftp
命令以及参数响应 ,进行数据交互的过程理解; f...
[python]-
socket
之
ftp
实现
下图是关于client下载文件的粗略
思路
,如果看不懂没有关系(反正这是画给我自己看的), 假装说明一下: 关于
客户端
下载功能,client端要做的事情有几件: 1.发送一个下载命令道
客户端
,比如 cmd =‘get apple.txt‘ 2.client要接受server对于cmd请求的返回,并获得ap...
基于
Socket
的
FTP
云盘系统
FTP
服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照
FTP
协议提供服务。
FTP
是File Transfer Protocol(文件传输协议)。 程序运行,服务端不断接收
客户端
指令,服务端可同时处理多个
客户端
接入并对指令作出解析,并把执行结果返回给
客户端
,
客户端
根据服务端对指令的解析并把由服务端传递过来的处理信息通过
客户端
呈现给客户,实现文件的各种操作。Linux网络编程实现的
FTP
服务器,服务器由服务端和
客户端
组成,具有浏览远程服务
C语言
70,040
社区成员
243,237
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章