当前位置:  技术问答>linux和unix

我想在hp unix下开发一个ftp工具(c/c++),请高手给些资料或源码

    来源: 互联网  发布时间:2015-10-31

    本文导语:  我想在hp unix下开发一个ftp工具(c/c++),请高手给些资料或源码,找了很久没什么头绪,希望大家帮忙。多谢了 | 听你的意思是要开发一个图形化的ftp客户端吧。 首先要知道的是ftp协议需要...

我想在hp unix下开发一个ftp工具(c/c++),请高手给些资料或源码,找了很久没什么头绪,希望大家帮忙。多谢了

|
听你的意思是要开发一个图形化的ftp客户端吧。

首先要知道的是ftp协议需要的端口有两个:第一个是21端口,又叫控制端口,发往ftp服务器的命令都是发往这个端口的。第二个是20端口,也即数据端口,上传或者下载文件都是通过这个端口传递数据。因此你的客户端要建立两个socket,分别传送数据和命令。

二是主、被动模式。主动模式是ftp服务器传递数据时主动连接客户端某个端口,反之叫被动模式。

三是客户端的gui开发主要就是命令结果的重定向。把ftp服务端的返回结果显示在指定构件里,便于查看。

其实找个ftp客户端源代码看是最好的,我用过一个叫gftp的,利用gtk库开发,有一定学习价值,你可以搜索下。另外了解ftp协议是必须的,推荐一个网站:http://www.cnpaf.net/  中国协议分析网。

|
看FTP源码只有这个办法。

|
开发FTP,不了解TCP/IP和FTP协议怎么做?楼主的意思令人费解

|
对,下载一个vsftp的源代码看看

|
楼主你试一下下面的函数,在Sco Unix没问题(我一直用这个),在Hp Unix我不知道行不行;
你试一下,我想应该差不多吧!

/*********************************************
flag= 取/发文件
local_name=本地文件
remote_name=对方文件
machine_name=机器名

**********************************************/
int  FTPComm(flag,local_name,remote_name,machine_name,user,pwd,index)
char * flag,*local_name,*remote_name,*machine_name,*user,*pwd;
int index;
{
char homedir[100]; /* home dir */
char    strcomm[200];
char ftperr[100];
char str1[100];
char buf[500],netrc[150]; /* program name */
int   rc;
FILE    * fpfile,*fp;
char    logfile[80],errfile[80];
long num;
char s1[200];
char  tmpfile[100];


/*初始化*/

/*取HOME目录*/
sprintf(homedir,"%s", getenv("HOME") );

if (strncmp(flag,"g",1) ==0) {
sprintf(strcomm," get %s %s",remote_name,local_name);
}
else {
sprintf(strcomm," put %s %s",local_name ,remote_name);
}



/*.netrc内容*/
sprintf(buf,"machine %s login %s password %s macdef initn %s nbyenn",


/*打开.netrc文件*/
sprintf( netrc,"%s/.netrc",homedir);
if( (fp=fopen(netrc,"w")) == NULL ) {
    
     rc= 99; 
 goto Exit1;
}
fprintf(fp, buf);
fclose(fp);

/*修改权限*/ 
chmod(netrc, 0600);


/*执行*/

sprintf(buf,"ftp %s>/dev/null 2>/dev/null" ,machine_name);

rc = system(buf);



if( access(netrc, 0 ) != 0 )
unlink(netrc); /*删除.netrc*/


rc = rc / 256 ;




if (rc) {
rc= 5;
goto Exit1;
}else{ 
/*判是否成功*/
if (strncmp(flag,"g",1) ==0) { /*get*/
...
} else { /* put*/
sprintf(tmpfile,"tmp/%d.tmp.file",getpid());
rc= FTPComm("g",tmpfile,remote_name,machine_name,user,pwd,index);
goto Exit1;;
}

}
Exit1:


return (0);
   
}

|
自己做一个不行吗?一定要遵从FTP协议?

|
学习。

|
楼主直接写个主函数,在主函数中调用FTPComm就可以了,在主函数中对相应的参数赋值即可
int main( int argc,char argv[] )
{
//参数定义
...
//对相关参数赋值
sprintf(machine_name,"%s","目标机器名" )
sprintf(user,"%s","登录用户名" )
sprintf(pwd,"%s","登录密码" )
...


rc= FTPComm("g",tmpfile,remote_name,machine_name,user,pwd,index);
flag,local_name,remote_name,machine_name,user,pwd,index
if( rc )
{
//判断函数调用结果
}
return 0
}

|
ftp 协议里没有dir这个命令,应该是
LIST [ ] 

建议先看一下 RFC959

|
看RFC足够了。实现一个基本命令集就可以了。任何语言都能实现,只要它能建立socket.

    
 
 

您可能感兴趣的文章:

  • 莱昂氏UNIX源码分析,关于PDP11
  • 谁有UNIX下编写菜单程序的源码,E一份给我!(Daiver@163.net)
  • 朋友请来研究unix操作系统源码
  • 我下载了UNIX环境高级编程的源码,可是打开时有错误,怎么才可以打开?还有谁有《UNIX环境高级编程(英文版)》的chm格式的ebook?
  • 谁有UNIX下编写菜单程序的源码,E一份给我!(horby@263.net)救火!
  • 我想看看有关Linux和Unix的源码,有什么好的建议
  • 哪里有steven的UNIX网络编程源码?
  • unix与linux的关系,是否免费?两者是否开放源码?各到什么版本?何处下载?
  • 看完《unix环境高级编程》,想找一些小程序的源码练习
  • 关于UNIX/Solaris源码的问题
  • 请问:有谁编译过steven的《unix环境高级编程》的源码吗?
  • 莱昂氏UNIX源码分析的疑问(1)
  • 谁有<unix环境高级语言>这本书的源码?
  • Unix网络编程 这套书+源码哪有
  • 那位大哥有UNIX下监控指定文件的改动情况的源码?
  • 编译unix网络编程源码出现错误
  • 请问有什么UNIX或MINIX系统源码学习的经典好书吗?
  • 研究莱昂氏unix源码的大侠请了!
  • 哪位大侠知道在哪可以下到unix/linux中一些命令,如ls,cat等的源码!小弟不甚感激.
  • 请问大家推荐一下对学习unix编程有帮助的比较小的应用程序源码
  • 我想学习Unix,请高手给个下载网址,用linux来学习Unix差别大吗?
  • 我想学习Unix,想下载Unix的x86版本,请高手给个下载网址?
  • unix下的非常的奇怪WC的问题,向unix高手请教 好急呀!!!!!!!!!!!!!!!
  • 我一直用WINDOWS,想转到Linux/Unix,各位Linux/Unix高手可以介绍点吗?
  • 寻找UNIX高手——IBM UNIX高手招募
  • shroot(刘茫)*********速来领分。(*欢迎unix高手光临*)
  • java中使用jxl生成excel文件,在unix中比在windows中明显慢,有高手知道原因吗?或者说unix和windows的文件系统哪个更快?
  • 请unix高手进入
  • UNIX开发的高手请进~
  • 菜鸟向sco unix+oracle高手请教
  • 学UNIX怎么入门啊??(高手从安装开始教教俺吧)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • UNIX 环境下大家开发Windows界面的工具都用什么开发工具?
  • unix IRIX6.5上有没有断点调试工具
  • unix下有没有比较好的程序版本控制和文档管理的工具?
  • Unix常用工具包 BusyBox
  • 请问有什么好的unix的telnet工具和ftp工具
  • 有没有什么工具可以在windows环境下生成unix用的.so文件
  • unix下的FTP工具是什么?就象windows下的cuteftp那种图形界面的。。
  • 文本换行符转换工具 dos2unix
  • oracle iis7站长之家
  • Unix下有什么能生成自解压文件的工具,而且能在ScoOpenServer下运行?
  • ---==UNIX或CYGWIN系统下,观测CPU使用率的命令或是其他工具==--
  • 急问:UNIX工作站环境下,有什么开发工具能够集成xWindow进行开发?
  • 菜鸟问题:Linux/Unix下做C++开发,一般用什么工具??
  • 怎样只使用unix的标准工具找出一个文本文件的最长的一行?
  • 请问不同unix平台推荐的内存泄露检测工具?
  • 高手指点,unix下有什么样的工具可以对程序进行汉化???答者有分
  • 调查一下Unix下有哪些生成Makefile的工具?
  • 请问怎么利用sco unix 5.05中的磁盘分区工具进行硬盘分区
  • sco unix下c++用什么开发工具
  • sco unix平台上的c有反编译工具吗有没有
  • java命名空间java.util.regex类pattern的类成员方法: unix_lines定义及介绍
  • 刚刚接触Unix系统和Unix编程。急需Unix下多线程程序设计和网络Socket程序设计方面的资料。
  • unix/Linux下c++ boost thread库读写锁介绍
  • 关于UNIX的历史 : 1973年,K.Thompson和D.M.ritchie,用C改写UNIX。那么,在此之前,UNIX是用什么写的?
  • php将标准字符串格式时间转换成unix时间戳_strtotime
  • 没有unix系统我如何学习unix
  • php将unix时间戳转换成字符串时间函数(date)
  • unix盘哪里有下载的??哪里有比较好的unix论坛??万分感谢!!!!!!!!!
  • unix/Linux下c/c++ pthread库读写锁函数介绍
  • 急!装完unix5.06,再装win2000。重启后不能进unix.
  • UNIX特急!!!digital unix问题,请专家快来!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3