首 页 ┆ 源码下载 ┆ IT学院 ┆ 字体下载 ┆ 模板下载 ┆ 源码发布 ┆ 广告合作 ┆ 网站地图 ┆ 虚拟主机 ┆ 中文域名
► 设为首页
► 加入收藏
► 联系我们
源码下载 >> ASP源码 | PHP源码 | ASP.net源码 | JSP源码 | CGI源码 | VC/C++源码 | VB源码 | Delphi源码 | Flash源码
文章学院 >> 网络编程 | 网页设计 | 图形图象 | 数据库 | 服务器 | 网络媒体 | 网络安全 | 操作系统 | 办公软件 | 软件开发 | 黑客知识
字体下载 >> 精制字体 | 非英字体 | 艺术字体 | 著名字体 | 哥特式 | 简单字体 | 手写体 | 节假日 | 图案字体 | 精度像素 | 中文字体
模板下载 >> 企业门户 | 数码网络 | 休闲娱乐 | 影视音乐 | 旅游名胜 | 文化艺术 | 电子商务 | 个性展示 | 登陆导航 | Flash模板
►►您当前的位置:源码园 → IT学院 → 黑客知识 → 黑客入门 → 文章内容

全面透析FTP--透析,FTP

作者:佚名  来源:网上收集  发布时间:2006-5-4 19:28:05
一.前言
Serv-U很多朋友都用过吧?功能强大,使用方便,不过这类商业软件大多复杂庞大,看着吓人。其实,FTP协议是比较简单的。如果了解了协议,写一个简单的单个EXE的FTP服务器不是很难,用在小场合也是非常方便的(脚本小子:两眼放光ing!嘿嘿,蝴蝶mm的机器又会多一样东西咯!)。

二.基础
先一起来把理查德爷爷的东西简单地温习一遍:FTP(File Transfer Protocol,文件传输协议)是Internet网络上使用最频繁的协议之一(早期非常使用频繁,后来被http抢去了头座)。FTP的命令数量非常之多,功能也极为强大,协议底层也很复杂,再加上FTP使用的是稳定的TCP协议(TFTP使用的是不稳定的UDP),有很高的传输质量,所以FTP也注定了是大文件传输、大吞吐量的数据交换的首选途径。
FTP一般是以客户机/服务器模式存在的,在数据连接和命令连接的基础上传输文件数据。我们今天要写的就是一个基于FTP协议的FTP服务器。
本文中的FTP服务器基本实现了文件的上传/下载,支持断点续传,支持PORT和PASV模式,并且支持相应的文件操作和目录操作。
太多的原理性的东西我不多说了,毕竟是程序性的文章,想详细知道的,可以去看《TCP/IP详解》的FTP相关章节。
注:限于篇幅关系,本文中的代码我就不加详细注释了,代码部分均不完整,变量或函数可能非法或没有申明。杂志光盘上附有完整源代码,建议对照阅读,编程基础还是要的,代码完全用C和SOCKETAPI写。

三.建立环境
我们要构建的是一个FTP服务器,众所周知,FTP服务器工作的时候占用的知名端口21(当然,你也可以不要这个端口):
sockAddr.sin_family=AF_INET;//internet模式
sockAddr.sin_port=htons(21);//端口21
sockAddr.sin_addr.S_un.S_addr=INADDR_ANY;//接受所有的地址
为了不占用21端口,为后续的用户做准备,我们用建立线程的方式,对每一个申请连接的FTP客户做服务。为了实现多用户,用了固定的几个(64)全局结构变量。也可以用数据结构上的链表的方式动态地加入用户结构:
beginSock=accept(FTPserver, (struct sockaddr *)&client, &clicnttemp);
//等待用户连接
if (beginSock==INVALID_SOCKET) return 1;
DWORD funid;
if(CreateThread(NULL, 0, ThreadFunctheFtp,(LPVOID)beginSock, 0, &funid)==0)
//开始建立ftp用户线程
建立了这个环境了后,等待客户端的到来,接下来的就是FTP的协议了。

[1] [2] [3]  下一页

[] [返回上一页] [打 印]
  • 上一篇文章:轻松修改Administrator账户的密码--修改,Administrator,账户,密码
  • 下一篇文章:Linux操作系统下软件的安装与卸载--Linux,操作系统,软件,安装,卸载

  • 相关文章:
  • 一个解析FTP地址的小函数[Delphi]--解析,FTP,地址,函...
  • 全面透析FTP--透析,FTP
  • 实现FTP多线程下载--实现,FTP,多线程,下载
  • [图文]内网Serv-U架站:实例解析FTP原理--内网,Serv...
  • 命令行方式使用FTP实战练习--命令行,FTP,实战,练习
  • 花生壳+IIS打造个人FTP服务器--花生壳,IIS,个人,FTP...
  • [组图]图解Web服务器和FTP服务器安全配置--图解,Web...
  • 命令行方式使用FTP实战练习--命令行方式,FTP,实战练...
  • RedHat9.0 vs-ftp 基本设置--RedHat,ftp,基本设置
  • 编程实现拨号网络连接及FTP应用--编程,拨号网络连接...
  • 远程修改FTP密码--远程修改,FTP,密码
  • [图文]灰鸽子的FTP上线教程 菜鸟必看!--灰鸽子,FTP...
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 源码发布
Copyright © 2003-2009 Ymyasp.Com. All Rights Reserved .
备案序号:粤ICP备07029071号