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

  • 大小: 4KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-12
  • 語言: 其他
  • 標簽: FTP??

資源簡介

FTP客戶端服務器端全部代碼

資源截圖

代碼片段和文件信息

//
//??THFTPAPI.c
//??MyFTP
//
//??Created?by?TanHao?on?13-6-6.
//??Copyright?(c)?2013年?http://www.tanhao.me.?All?rights?reserved.
//

#include?“THFTPAPI.h“

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

//創建一個socket并返回
int?socket_connect(char?*hostint?port)
{
????struct?sockaddr_in?address;
????int?s?opvalue;
????socklen_t?slen;
????
????opvalue?=?8;
????slen?=?sizeof(opvalue);
????memset(&address?0?sizeof(address));
????
????if?((s?=?socket(AF_INET?SOCK_STREAM?0))?????????setsockopt(s?IPPROTO_IP?IP_TOS?&opvalue?slen)?????????return?-1;
????
????//設置接收和發送超時
????struct?timeval?timeo?=?{15?0};
????setsockopt(s?SOL_SOCKET?SO_SNDTIMEO?&timeo?sizeof(timeo));
????setsockopt(s?SOL_SOCKET?SO_RCVTIMEO?&timeo?sizeof(timeo));
????
????address.sin_family?=?AF_INET;
????address.sin_port?=?htons((unsigned?short)port);
????
????struct?hostent*?server?=?gethostbyname(host);
????if?(!server)
????????return?-1;
????
????memcpy(&address.sin_addr.s_addr?server->h_addr?server->h_length);
????
????if?(connect(s?(struct?sockaddr*)?&address?sizeof(address))?==?-1)
????????return?-1;
????
????return?s;
}

//連接到一個ftp的服務器,返回socket
int?connect_server(?char?*host?int?port?)
{????
????int???????ctrl_sock;
????char??????buf[512];
????int???????result;
????ssize_t???len;
????
????ctrl_sock?=?socket_connect(host?port);
????if?(ctrl_sock?==?-1)?{
????????return?-1;
????}
????
????len?=?recv(?ctrl_sock?buf?512?0?);
????buf[len]?=?0;
????sscanf(?buf?“%d“?&result?);
????if?(?result?!=?220?)?{
????????close(?ctrl_sock?);
????????return?-1;
????}
????
????return?ctrl_sock;
}

//發送命令返回結果
int?ftp_sendcmd_re(?int?sock?char?*cmd?void?*re_buf?ssize_t?*len)
{
????char????????buf[512];
????ssize_t?????r_len;
????
????if?(?send(?sock?cmd?strlen(cmd)?0?)?==?-1?)
????????return?-1;
????
????r_len?=?recv(?sock?buf?512?0?);
????if?(?r_len?????buf[r_len]?=?0;
????
????if?(len?!=?NULL)?*len?=?r_len;
????if?(re_buf?!=?NULL)?sprintf(re_buf?“%s“?buf);
????
????return?0;
}

//發送命令返回編號
int?ftp_sendcmd(?int?sock?char?*cmd?)
{
????char?????buf[512];
????int??????result;
????ssize_t??len;
????
????result?=?ftp_sendcmd_re(sock?cmd?buf?&len);
????if?(result?==?0)
????{
????????sscanf(?buf?“%d“?&result?);
????}
????
????return?result;
}

//登錄ftp服務器
int?login_server(?int?sock?char?*user?char?*pwd?)
{
????char????buf[128];
????int?????result;
????
????sprintf(?buf?“USER?%s\r\n“?user?);
????result?=?ftp_sendcmd(?sock?buf?);
????if?(?result?==?230?)?return?0;
????else?if?(?result?==?331?)?{
????????sprintf(?buf?“PASS?%s\r\n“?pwd?);
????????if?(?ftp_sendcmd(?sock?buf?)?!=?230?)?return?-1;
????????return?0;
????}
????else
????????return?-1;
}

int?create_datasock(?int?ctrl_sock?)
{
????int?????lsn_sock;
????int?????port;
????int???

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????12198??2013-07-19?09:48??THFTPAPI.c
?????目錄???????????0??2013-07-19?09:49??__MACOSX\
?????文件?????????171??2013-07-19?09:48??__MACOSX\._THFTPAPI.c
?????文件?????????998??2013-06-19?14:05??THFTPAPI.h
?????文件?????????171??2013-06-19?14:05??__MACOSX\._THFTPAPI.h

評論

共有 條評論