当前位置: 技术问答>linux和unix
linux 下 文件传输程序
来源: 互联网 发布时间:2015-02-15
本文导语: 我想在linux环境中编写一个c/s方式的文件传输程序 1.server端首先运行 2,client端将文件发送到server 3,server端将接收到的文件保存到磁盘上 还没有思路请大家帮忙看一下。 最好有例子程序看一看 | 以下是...
我想在linux环境中编写一个c/s方式的文件传输程序
1.server端首先运行
2,client端将文件发送到server
3,server端将接收到的文件保存到磁盘上
还没有思路请大家帮忙看一下。
最好有例子程序看一看
1.server端首先运行
2,client端将文件发送到server
3,server端将接收到的文件保存到磁盘上
还没有思路请大家帮忙看一下。
最好有例子程序看一看
|
以下是我写的一个Client端的库,你可以参照一下。
头文件:
/*##############################################################################
#
# PG name : liblpftp.h
#
# This head is for liblpftp.c
#
# Modify Date : 2002/03/13 By kyoku-c
#
##############################################################################*/
#ifndef __LIB_LP_FTP_H_
#define __LIB_LP_FTP_H_
/******************************************************************************/
/* Head Department */
/******************************************************************************/
/*-------------------------------------------------------*/
#include
#include
#include
#include
/*------------------------------------------------*/
typedef struct _connect_data {
/* control connection */
struct sockaddr_in saddr; /* server */
struct sockaddr_in laddr; /* local */
int ctrl;
/* data connection */
int passive; /* flag whether passive supported */
struct sockaddr_in daddr;
int data;
/* last response */
char *lastline;
} connect_data;
struct _file_progress_data {
long totalsize;
time_t lasttime;
long currentsize;
float rate;
long elapsed;
long left;
int percent;
};
typedef int (*ftp_check_proc)();
typedef int (*ftp_xfer_proc)(int, void*);
/*----------------------------------------------*/
struct in_addr *ftp_gethosts (char*, ftp_check_proc);
int ftp_syst (struct _connect_data*, FILE*, ftp_check_proc);
int ftp_rename (char*,char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_site (char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_mkdir (char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_delete (char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_rmdir (char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_chdir (char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_command (char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_read_response (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_disconnect (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_connect (char*,int,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_login (char*,char*,char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_pwd (char**,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_size (long*,char,char*,connect_data*,FILE*,ftp_check_proc);
int ftp_passive_init (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_sendport_init (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_data_init (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_passive_connect (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_sendport_connect (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_data_connect (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_list (char*,char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_get (char,char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_resume (char,long,char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_put (char,char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_close_data (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_abort_data (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_xfer_get(char,int,int,ftp_xfer_proc,void*);
int ftp_xfer_put(char,int,int,ftp_xfer_proc,void*);
#endif /* __LIB_LP_FTP_H_ */
头文件:
/*##############################################################################
#
# PG name : liblpftp.h
#
# This head is for liblpftp.c
#
# Modify Date : 2002/03/13 By kyoku-c
#
##############################################################################*/
#ifndef __LIB_LP_FTP_H_
#define __LIB_LP_FTP_H_
/******************************************************************************/
/* Head Department */
/******************************************************************************/
/*-------------------------------------------------------*/
#include
#include
#include
#include
/*------------------------------------------------*/
typedef struct _connect_data {
/* control connection */
struct sockaddr_in saddr; /* server */
struct sockaddr_in laddr; /* local */
int ctrl;
/* data connection */
int passive; /* flag whether passive supported */
struct sockaddr_in daddr;
int data;
/* last response */
char *lastline;
} connect_data;
struct _file_progress_data {
long totalsize;
time_t lasttime;
long currentsize;
float rate;
long elapsed;
long left;
int percent;
};
typedef int (*ftp_check_proc)();
typedef int (*ftp_xfer_proc)(int, void*);
/*----------------------------------------------*/
struct in_addr *ftp_gethosts (char*, ftp_check_proc);
int ftp_syst (struct _connect_data*, FILE*, ftp_check_proc);
int ftp_rename (char*,char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_site (char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_mkdir (char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_delete (char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_rmdir (char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_chdir (char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_command (char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_read_response (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_disconnect (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_connect (char*,int,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_login (char*,char*,char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_pwd (char**,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_size (long*,char,char*,connect_data*,FILE*,ftp_check_proc);
int ftp_passive_init (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_sendport_init (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_data_init (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_passive_connect (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_sendport_connect (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_data_connect (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_list (char*,char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_get (char,char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_resume (char,long,char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_put (char,char*,struct _connect_data*,FILE*,ftp_check_proc);
int ftp_close_data (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_abort_data (struct _connect_data*,FILE*,ftp_check_proc);
int ftp_xfer_get(char,int,int,ftp_xfer_proc,void*);
int ftp_xfer_put(char,int,int,ftp_xfer_proc,void*);
#endif /* __LIB_LP_FTP_H_ */
|
参看:UNIX网络编程,第一卷.