资源简介
基于linux下的服务器 可完成上传下载等一系列功能
代码片段和文件信息
#include “com.h“
#include “pub.h“
#include “hash.h“
int data_conn_sock; //数据连接通道
int pasv_connsock; //做PASV时那个套接口
char up_com[10] ; //记上一条命令到底是PASV还是PORT用的
char port_ip[50] ; //PORT命令处理完后记IP用的
int port_port ; // PORT 命令处理完后记port用的
char refilename[100]; // 文件重命名
long rest_long; //断点续传的长度
long transfer_data_now; //从开始到现在的发送字节数
long transfer_data_last; //从开始到上一次的发送字节数
float limit_speed; //上传下载的限制速度
/*
*函数功能:收到客户端发过来的USER命令进行处理的
*输入参数:CONNSESSION *nowssion:存放着客户端发过来的各种参数路径
*返回值: 无
*/
void ftp_user(CONNSESSION *nowssion)
{
strcpy(connusernowssion->charm);
//printf(“11.name %s\n“connuser);
write_loop(connfd “331 please specify password\r\n“ strlen(“331 please specify password\r\n“));
}
/*
*函数功能:收到客户端发过来的PASS命令进行处理的
*输入参数:CONNSESSION *nowssion:存放着客户端发过来的各种参数路径
*返回值: 无
*/
void ftp_pass(CONNSESSION *nowssion)
{
int res;
if(strcmp(connuser “anonymous“) != 0)
{
res = checkpass(connusernowssion->charm);
if (res == 1)
write_loop(connfd “230 Login successful\r\n“ strlen(“230 Login successful\r\n“));
else
write_loop(connfd “the pass is error!\r\n“ strlen(“the pass is error!\r\n“));
setegid_euid(connuser0);
}
else
{
write_loop(connfd “230 Login successful\r\n“ strlen(“230 Login successful\r\n“));
chdir(“/var/ftp“);
}
}
/*
*函数功能:收到客户端发过来的SYST命令进行处理的
*输入参数:CONNSESSION *nowssion:存放着客户端发过来的各种参数路径
*返回值: 无
*/
void ftp_syst(CONNSESSION *nowssion)
{
write_loop(connfd “215 UNIX Type: L8\r\n“ strlen(“215 UNIX Type: L8\r\n“));
}
/*
*函数功能:收到客户端发过来的PWD命令进行处理的 把路径封装好发给客户端
*输入参数:CONNSESSION *nowssion:存放着客户端发过来的各种参数路径
*返回值: 无
*/
void ftp_pwd(CONNSESSION *nowssion)
{
char nowdir[100] = ““;
char tempstr[200] = ““;
//chdir(nowssion->dir);
if(strcmp(connuser “anonymous“) != 0)
{
sprintf(tempstr “257 \“%s\“\r\n“ nowssion->dir);
}
else
{
if(strcmp(nowssion->dir “/var/ftp“) == 0)
strcpy(tempstr “257 \“/\“\r\n“);
else
{
sprintf(tempstr “257 \“%s\“\r\n“ nowssion->dir+8);
}
}
write_loop(connfd tempstrstrlen(tempstr));
// write_loop(connfd “257 test\r\n“ sizeof(“257 test\r\n“));
}
/*
*函数功能:收到客户端发过来的TYPE命令进行处理的
*输入参数:CONNSESSION *nowssion:存放着客户端发过来的各种参数路径
*返回值: 无
*/
void ftp_type(CONNSESSION *nowssion)
{
if(strcmp(nowssion->charm “A“)==0)
write_loop(connfd “200 Switching to ASCII mode\r\n“ strlen(“200 Switching to ASCII mode\r\n“));
else
write_loop(connfd “200 Switching to binary system mode\r\n“ strlen(“200 Switching to binary system mode\r\n“));
}
/*
*函数功能:收到客户端发过来的CWD命令进行处理的 进入到指定目录
*输入参数:CONNSESSION *nowssion:存放着客户端发过来的各种参数路径
*返回值: 无
*/
//进目录
void ftp_cwd(CONNSESSION *nowssion)
{
if(strcmp(connuser “root“) != 0 )
{
if(strcmp(nowssion->charm “root“) == 0 || strcmp(nowssion->charm “/root/“) == 0)
{
write_loop(connfd “550 Failed to change directory.\r\
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-06-14 17:01 wzyftp\
文件 22287 2013-07-08 22:43 wzyftp\com.c
文件 1513 2013-07-06 15:00 wzyftp\com.h
文件 27128 2013-07-09 19:15 wzyftp\com.o
文件 187 2013-07-09 19:15 wzyftp\ftp.conf
文件 6124 2013-07-07 19:52 wzyftp\hash.c
文件 1048 2013-07-02 17:56 wzyftp\hash.h
文件 10388 2013-07-09 19:15 wzyftp\hash.o
文件 160 2013-07-03 15:50 wzyftp\makefile
文件 63104 2013-07-09 19:19 wzyftp\myftp
文件 170 2013-06-28 23:31 wzyftp\myftp.c
文件 2400 2013-07-09 19:15 wzyftp\myftp.o
文件 12957 2013-06-28 16:43 wzyftp\pp
文件 10646 2013-07-08 22:30 wzyftp\pub.c
文件 1616 2013-07-03 15:50 wzyftp\pub.h
文件 15528 2013-07-09 19:15 wzyftp\pub.o
文件 11722 2013-07-09 19:19 wzyftp\ser.c
文件 11722 2013-07-09 19:19 wzyftp\ser.c.bak
文件 614 2013-07-03 15:50 wzyftp\ser.h
文件 15872 2013-07-09 19:19 wzyftp\ser.o
- 上一篇:KPG100DC
- 下一篇:JSON-js-master
相关资源
- cadence安装方法 linux
- Linux下安装Intel无线网卡
- openssh-8.2.tar.gz
- Linux常用命令全集260354
- smartctl源码
- Linux命令大全完整版.pdf
- Linux ATM取款机简单实现附详细说明-
- 2018年最新全套linux视频教程源码笔记
- 华中科技大学计算机学院操作系统一
- linux使用规范
- libsigar-amd64-linux.so以及libsigar-x86-linu
- linux哲学家就餐3种方法代码实现
- centos 7的telnet安装包.zip
- Linux版本浙江闪讯拨号连接
- Linux 下多线程数字排序
- pcap 在linux简单实现网络的抓包程序
- 在Linux环境下模拟实现命令解释器--操
- linux 线程池封装类
- 嵌入式linux 应用程序开发框架之模块
- linux 常用压测命令
- linux下shell编程
- linux usb hid device端测试程序
- 用qml简单的文本编辑器,可以跨平台
- LINUX下的一个多线程的服务器和客户端
- tcpdump-4.9.0-5.el7.x86_64.rpm
- Linux C利用多进程或多线程模拟实现生
- linux下用freetype2显示汉字
- lsof-4.82-4.el6.x86_64.rpm
- Linux操作系统设计实践报告一
- 等保主机安全基线合规--配置指导li
评论
共有 条评论