资源简介
标准C写成的实现FTP上传下载功能的源代码,浅显易懂,编程新手可以看看其层次划分和代码编写风格。

代码片段和文件信息
//====================================================================
//
// Copyright (C) 2006-2008 Frank.Ning
//
// Filename: axel.c
// Author: Frank.Ning
// Description:
//
// $Id: axel.cv 1.9 2007/11/30 08:18:11 frank Exp $
//
//====================================================================
#include “axel.h“
static const char* const axel_c_version =
“$Id: axel.cv 1.9 2007/11/30 08:18:11 frank Exp $“;
/* Axel */
static void save_state( axel_t *axel );
#ifdef WIN32
static DWORD WINAPI setup_thread(LPVOID c );
#else
static void *setup_thread( void * );
#endif
static void axel_message( axel_t *axel char *format ... );
static void axel_divide( axel_t *axel );
static char *buffer = NULL;
/* Create a new axel_t structure */
axel_t *axel_new( conf_t *conf int file_id
const char *url const char* local_file Orention_t direct )
{
// search_t *res;
axel_t *axel;
// url_t *u;
int i tmpfd;
char *s;
struct stat ft;
axel = malloc( sizeof( axel_t ) );
memset( axel 0 sizeof( axel_t ) );
axel->conf = conf;
axel->conn = malloc( sizeof( conn_t ) * axel->conf->num_connections );
memset( axel->conn 0 sizeof( conn_t ) * axel->conf->num_connections );
if( axel->conf->max_speed > 0 )
{
if( (float) axel->conf->max_speed / axel->conf->buffer_size < 0.5 )
{
if( axel->conf->verbose >= 2 )
axel_message( axel _(“Buffer resized for this speed.“) );
axel->conf->buffer_size = axel->conf->max_speed;
}
axel->delay_time = (int) ( (float) 1000000 / axel->conf->max_speed * axel->conf->buffer_size * axel->conf->num_connections );
}
if( buffer == NULL )
buffer = malloc( max( MAX_STRING axel->conf->buffer_size ) );
axel->url = malloc( sizeof( url_t ) );
axel->url->next = axel->url;
strcpy( axel->url->text (char *) url );
axel->direct = direct;
axel->status = malloc( sizeof(conn_status_t) );
memset( axel->status 0 sizeof(conn_status_t) );
for( i = 0; i < axel->conf->num_connections ; ++i )
{
axel->conn[ i ].file_id = file_id;
axel->conn[ i ].direct = direct;
axel->status->mask |= ( 1 << i );
}
#if 0
if( count == 0 )
{
axel->url = malloc( sizeof( url_t ) );
axel->url->next = axel->url;
strcpy( axel->url->text (char *) url );
}
else
{
res = (search_t *) url;
u = axel->url = malloc( sizeof( url_t ) );
for( i = 0; i < count; i ++ )
{
strcpy( u->text res[i].url );
if( i < count - 1 )
{
u->next = malloc( sizeof( url_t ) );
u = u->next;
}
else
{
u->next = axel->url;
}
}
}
#endif
axel->conn[0].conf = axel->conf;
axel->conn[0].status = axel->status;
if( !conn_set( &axel->conn
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 33005 2008-01-16 15:19 src\axel.c
文件 3147 2008-01-14 10:57 src\axel.h
文件 2829 2007-11-05 14:31 src\axel.h.~1.6.~
文件 412865 2008-01-14 11:32 src\axel.o
文件 989 2007-10-23 16:44 src\conf.h
文件 395529 2008-01-14 11:17 src\conf.o
文件 8631 2008-01-07 11:09 src\conn.c
文件 8601 2007-11-15 10:07 src\conn.c.~1.5.~
文件 1666 2008-01-14 10:57 src\conn.h
文件 1602 2007-11-15 10:07 src\conn.h.~1.5.~
文件 401658 2008-01-14 11:17 src\conn.o
文件 9490 2008-01-14 11:46 src\ftp.c
文件 1129 2007-11-15 10:07 src\ftp.h
文件 401836 2008-01-14 11:46 src\ftp.o
文件 4946 2007-10-23 09:14 src\http.c
文件 1287 2007-10-23 09:14 src\http.h
文件 399067 2008-01-14 11:17 src\http.o
文件 1128 2008-01-11 16:13 src\inet_test.c
文件 0 2008-01-11 16:04 src\inet_test.c.~1~
文件 10658 2008-01-14 11:46 src\libwww.a
文件 407 2008-01-14 11:46 src\libwww.def
文件 1195 2007-11-05 10:00 src\Makefile
文件 1571 2007-10-23 16:44 src\socket_impl.c
文件 1064 2007-10-23 09:14 src\socket_impl.h
文件 376997 2008-01-14 11:17 src\socket_impl.o
文件 2033 2007-11-05 10:04 src\tcp.c
文件 661 2007-10-23 09:14 src\tcp.h
文件 393398 2008-01-14 11:17 src\tcp.o
文件 386265 2008-01-14 11:50 src\test.o
文件 108 2007-11-06 15:08 src\test.sh
............此处省略29个文件信息
- 上一篇:od增长系数法程序可用于任意矩阵
- 下一篇:一个随笔画程序
相关资源
- bp神经网络源代码,可直接运行
- FTP课程设计(服务端+客户端)
- 随机森林R语言代码
- 计算机图形学 边填充算法实现代码
- 直流无刷电机方波驱动 stm32 例程代码
- 仿知乎界面小程序源代码
- 贪吃蛇源代码.fla
- 周立功开发板ProASIC3实验-syn_FIFO代码
- IMX385驱动代码.zip
- dotnet 写字板 实验 源代码 不好请要不
- 图像二维小波变换的实现源代码
- 八三编码器设计 VHDL代码 简单,包附
- linux应用层的华容道游戏源代码
- 交通咨询模拟系统完整代码
- http请求状态代码
- 数值分析所有实验代码
- python实现的ftp自动上传、下载脚本
- 网上拍卖系统完整源代码
- 音乐代码转换软件 单片机编程时用
- CSMA/CD等动画演示加源代码
- silicon lab公司的收音IC SI47XX全套开发工
- 用Socket编程实现FTP
- 用51单片机实现G代码翻译
- 合同管理系统的源代码(附数据库)
- 用VC 编写的仿QQ聊天室程序源代码
- web班级网站设计代码
- 38k单片机红外发送代码、keil
- STM32F103 串口程序(完整版)
- 网络唤醒代码
- VPC3_DPV1源代码,Profibus
评论
共有 条评论