91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-05
  • 語言: C/C++
  • 標簽: FTP上傳??FTP協議??

資源簡介

linux下C語言實現FTP上傳文件源碼 一個函數搞定FTP上傳 直接編譯可用 int main() { ftp_upload("ipx.xxx.xxx.xxx",21,"username","password","./main.c","upload_name"); return 0; }

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
#include??
#include?
#include?
#include?

#define?MAX_LEN?1024*1
#define?MAX_CMD_LEN?128

static?inline?int?ftp_socket_send(int?fd?char?*str)
{
send(fd?str?strlen(str)?0);
return?0;
}

static?inline?int?ftp_socket_recv(int?fd?char?*str)
{
int?size;
size?=?recv(fd?str?MAX_LEN-1?0);
str[size]?=?0;

printf(“ftp?recv:?%s\n“str);
return?0;
}

static?int?ftp_get_data_port(char?*buff?in_port_t?*port)
{
int?i?=?0?j?=?0;
short?port_l?=?0?port_h?=?0;

????if?(buff?==?NULL?||?port?==?NULL)
????{
????????return?-1;
????}
????//?(192168186140).
while?(buff[i++]?!=?‘(‘);
while?(j? {
if(buff[i++]?==?‘‘)
j++;
}

while?(buff[i]?!=?‘‘)
{
port_h?*=?10;
port_h?+=?buff[i]?-?0x30;
i++;
}

i++;
while?(buff[i]?!=?‘)‘)
{
port_l?*=?10;
port_l?+=?buff[i]?-?0x30;
i++;
}

printf(“data_port?:?%u\n“?port_h?< *port?=?htons((short)(port_h?<
return?0;
}
static?int?ftp_get_upload_file_name(const?char?*upload_file?char?*file_name)
{
????int?i?=?0;
????int?path_lenth?=?0;

????if?(upload_file?==?NULL?||?file_name?==?NULL)
????{
????????return?-1;
????}

????path_lenth?=?strlen(upload_file);

????while?(path_lenth?-?i?>?0)
????{
????????//?find?index?of?‘/‘
????????if?(upload_file[path_lenth?-?i]==?47)
????????{
????????????i--;
????????????break;
????????}
????????i++;
????}

????strcpy(file_name?&upload_file[path_lenth?-?i]);


????return?0;
}

int?ftp_upload(const?char?*ip?unsigned?int?port?const?char?*user?const?char?*pwd?const?char?*upload_fileconst?char?*upload_name)
{
int?ret;
int?size;
char?buff[MAX_LEN];
char?cmd[MAX_CMD_LEN];
????char?file_name[256];
int?fd_socket?fd_data;
struct?sockaddr_in?addr;
struct?sockaddr_in?data;
int?send_ret=0;

addr.sin_family?=?AF_INET;
inet_aton(ip?&addr.sin_addr);
addr.sin_port???=?htons(port);
data.sin_family?=?AF_INET;
inet_aton(ip?&data.sin_addr);

fd_socket?=?socket(AF_INET?SOCK_STREAM?0);
????if?(fd_socket?==?-1)
????{
????????return?-1;
????}

fd_data?=?socket(AF_INET?SOCK_STREAM?0);
????if?(fd_data?==?-1)
????{
close(fd_socket);
????????return?-1;
????}

ret?=?connect(fd_socket?(struct?sockaddr?*)&addr?sizeof(addr));
????if?(ret?!=?0)
????{
close(fd_data);
close(fd_socket);
????????printf(“connet?falied\n“);
????????return?-1;
????}
????
size?=?recv(fd_socket?buff?MAX_LEN-1?0);
buff[size]?=?0;

????memset(cmd?0?sizeof(cmd));
????sprintf(cmd?“USER?%s\r\n“?user);
????//?ftp_socket_send(fd_socket?“PASS?shikejun\r\n“);
ftp_socket_send(fd_socket?cmd);
ftp_socket_recv(fd_socket?buff);

????memset(cmd?0?sizeof(cmd));
????sprintf(cmd?“PASS?%s\r\n“?pwd);
ftp_socket_send(fd_socket?cmd);
ftp

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4706??2017-02-24?14:44??main.c

?????文件?????????24??2017-02-24?11:29??makefile

-----------?---------??----------?-----??----

?????????????????4730????????????????????2


評論

共有 條評論