您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ FtpSendCmd函数代码示例

51自学网 2021-06-01 20:49:06
  C++
这篇教程C++ FtpSendCmd函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中FtpSendCmd函数的典型用法代码示例。如果您正苦于以下问题:C++ FtpSendCmd函数的具体用法?C++ FtpSendCmd怎么用?C++ FtpSendCmd使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了FtpSendCmd函数的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: FtpOpenPort

static int FtpOpenPort(struct stream_priv_s* p) {  int resp,fd;  char rsp_txt[256];  char* par,str[128];  int num[6];  resp = FtpSendCmd("PASV",p,rsp_txt);  if(resp != 2) {    mp_msg(MSGT_OPEN,MSGL_WARN, "[ftp] command 'PASV' failed: %s/n",rsp_txt);    return 0;  }    par = strchr(rsp_txt,'(');    if(!par || !par[0] || !par[1]) {    mp_msg(MSGT_OPEN,MSGL_ERR, "[ftp] invalid server response: %s ??/n",rsp_txt);    return 0;  }  sscanf(par+1,"%u,%u,%u,%u,%u,%u",&num[0],&num[1],&num[2],	 &num[3],&num[4],&num[5]);  snprintf(str,127,"%d.%d.%d.%d",num[0],num[1],num[2],num[3]);  fd = connect2Server(str,(num[4]<<8)+num[5],0);  if(fd < 0)    mp_msg(MSGT_OPEN,MSGL_ERR, "[ftp] failed to create data connection/n");  return fd;}
开发者ID:batman52,项目名称:dingux-code,代码行数:29,


示例2: FtpLogin

/* * FtpLogin - log in to remote server * * return 1 if logged in, 0 otherwise */GLOBALDEF int FtpLogin(const char *user, const char *pass, netbuf *nControl){	char tempbuf[64];	if (((strlen(user) + 7) > sizeof(tempbuf)) ||			((strlen(pass) + 7) > sizeof(tempbuf)))		return 0;	sprintf(tempbuf,"USER %s",user);	if (!FtpSendCmd(tempbuf,'3',nControl))	{		if (nControl->response[0] == '2')			return 1;		return 0;	}	sprintf(tempbuf,"PASS %s",pass);	return FtpSendCmd(tempbuf,'2',nControl);}
开发者ID:vmiklos,项目名称:vmexam,代码行数:22,


示例3: FtpQuit

/* * FtpQuit - disconnect from remote * * return 1 if successful, 0 otherwise */GLOBALDEF void FtpQuit (netbuf *nControl) {    if (nControl->dir != FTPLIB_CONTROL)        return;    FtpSendCmd("QUIT", '2', nControl);    net_close(nControl->handle);    free(nControl->buf);    free(nControl);}
开发者ID:MikhailTatsky,项目名称:SilkJS,代码行数:13,


示例4: FtpRmdir

/* * FtpRmdir - remove directory at remote * * return 1 if successful, 0 otherwise */GLOBALDEF int FtpRmdir (const char *path, netbuf *nControl) {    char buf[256];    if ((strlen(path) + 6) > sizeof (buf))        return 0;    sprintf(buf, "RMD %s", path);    if (!FtpSendCmd(buf, '2', nControl))        return 0;    return 1;}
开发者ID:MikhailTatsky,项目名称:SilkJS,代码行数:15,


示例5: FtpDelete

/* * FtpDelete - delete a file at remote * * return 1 if successful, 0 otherwise */GLOBALDEF int FtpDelete (const char *fnm, netbuf *nControl) {    char cmd[256];    if ((strlen(fnm) + 7) > sizeof (cmd))        return 0;    sprintf(cmd, "DELE %s", fnm);    if (!FtpSendCmd(cmd, '2', nControl))        return 0;    return 1;}
开发者ID:MikhailTatsky,项目名称:SilkJS,代码行数:15,


示例6: FtpRestart

/* * FtpRestart - issue a REST command * * return 1 if successful, 0 otherwise */GLOBALDEF int FtpRestart(int offset, netbuf *nControl){	char cmd[256];	int rv=1;	sprintf(cmd,"REST %d",offset);	if (!FtpSendCmd(cmd,'3',nControl))		rv = 0;	return rv;}
开发者ID:vmiklos,项目名称:vmexam,代码行数:15,


示例7: FtpSite

/* * FtpSite - send a SITE command * * return 1 if command successful, 0 otherwise */GLOBALDEF int FtpSite (const char *cmd, netbuf *nControl) {    char buf[256];    if ((strlen(cmd) + 7) > sizeof (buf))        return 0;    sprintf(buf, "SITE %s", cmd);    if (!FtpSendCmd(buf, '2', nControl))        return 0;    return 1;}
开发者ID:MikhailTatsky,项目名称:SilkJS,代码行数:15,


示例8: FtpSize

/* * FtpSize - determine the size of a remote file * * return 1 if successful, 0 otherwise */GLOBALDEF int FtpSize (const char *path, int *size, char mode, netbuf *nControl) {    char cmd[256];    int resp, sz, rv = 1;    if ((strlen(path) + 7) > sizeof (cmd))        return 0;    sprintf(cmd, "TYPE %c", mode);    if (!FtpSendCmd(cmd, '2', nControl))        return 0;    sprintf(cmd, "SIZE %s", path);    if (!FtpSendCmd(cmd, '2', nControl))        rv = 0;    else {        if (sscanf(nControl->response, "%d %d", &resp, &sz) == 2)            *size = sz;        else            rv = 0;    }    return rv;}
开发者ID:MikhailTatsky,项目名称:SilkJS,代码行数:25,


示例9: seek

static int seek(stream_t *s,off_t newpos) {  struct stream_priv_s* p = s->priv;  int resp;  char rsp_txt[256];  if(s->pos > s->end_pos) {    s->eof=1;    return 0;  }  // Check to see if the server did not already terminate the transfer  if(fd_can_read(p->handle, 0)) {    if(readresp(p,rsp_txt) != 2)      mp_msg(MSGT_OPEN,MSGL_WARN, "[ftp] Warning the server didn't finished the transfer correctly: %s/n",rsp_txt);    closesocket(s->fd);    s->fd = -1;  }  // Close current download  if(s->fd >= 0) {    static const char pre_cmd[]={TELNET_IAC,TELNET_IP,TELNET_IAC,TELNET_SYNCH};    //int fl;        // First close the fd    closesocket(s->fd);    s->fd = 0;        // Send send the telnet sequence needed to make the server react        // Dunno if this is really needed, lftp have it. I let    // it here in case it turn out to be needed on some other OS    //fl=fcntl(p->handle,F_GETFL);    //fcntl(p->handle,F_SETFL,fl&~O_NONBLOCK);    // send only first byte as OOB due to OOB braindamage in many unices    send(p->handle,pre_cmd,1,MSG_OOB);    send(p->handle,pre_cmd+1,sizeof(pre_cmd)-1,0);        //fcntl(p->handle,F_SETFL,fl);    // Get the 426 Transfer aborted    // Or the 226 Transfer complete    resp = readresp(p,rsp_txt);    if(resp != 4 && resp != 2) {      mp_msg(MSGT_OPEN,MSGL_ERR, "[ftp] Server didn't abort correctly: %s/n",rsp_txt);      s->eof = 1;      return 0;    }    // Send the ABOR command    // Ignore the return code as sometimes it fail with "nothing to abort"    FtpSendCmd("ABOR",p,rsp_txt);  }  return FtpOpenData(s,newpos);}
开发者ID:batman52,项目名称:dingux-code,代码行数:54,


示例10: FtpSysType

/* * FtpSysType - send a SYST command * * Fills in the user buffer with the remote system type.  If more * information from the response is required, the user can parse * it out of the response buffer returned by FtpLastResponse(). * * return 1 if command successful, 0 otherwise */GLOBALDEF int FtpSysType (char *buf, int max, netbuf *nControl) {    int l = max;    char *b = buf;    char *s;    if (!FtpSendCmd("SYST", '2', nControl))        return 0;    s = &nControl->response[4];    while ((--l) && (*s != ' '))        *b++ = *s++;    *b++ = '/0';    return 1;}
开发者ID:MikhailTatsky,项目名称:SilkJS,代码行数:21,


示例11: FtpModDate

/* * FtpModDate - determine the modification date of a remote file * * return 1 if successful, 0 otherwise */GLOBALDEF int FtpModDate (const char *path, char *dt, int max, netbuf *nControl) {    char buf[256];    int rv = 1;    if ((strlen(path) + 7) > sizeof (buf))        return 0;    sprintf(buf, "MDTM %s", path);    if (!FtpSendCmd(buf, '2', nControl))        rv = 0;    else        strncpy(dt, &nControl->response[4], max);    return rv;}
开发者ID:MikhailTatsky,项目名称:SilkJS,代码行数:18,


示例12: FtpPwd

/* * FtpPwd - get working directory at remote * * return 1 if successful, 0 otherwise */GLOBALDEF int FtpPwd (char *path, int max, netbuf *nControl) {    int l = max;    char *b = path;    char *s;    if (!FtpSendCmd("PWD", '2', nControl))        return 0;    s = strchr(nControl->response, '"');    if (s == NULL)        return 0;    s++;    while ((--l) && (*s) && (*s != '"'))        *b++ = *s++;    *b++ = '/0';    return 1;}
开发者ID:MikhailTatsky,项目名称:SilkJS,代码行数:20,


示例13: close_f

static void close_f(stream_t *s) {  struct stream_priv_s* p = s->priv;  if(!p) return;  if(s->fd > 0) {    closesocket(s->fd);    s->fd = 0;  }  FtpSendCmd("QUIT",p,NULL);  if(p->handle) closesocket(p->handle);  if(p->buf) free(p->buf);  m_struct_free(&stream_opts,p);}
开发者ID:batman52,项目名称:dingux-code,代码行数:17,


示例14: FtpSendCmd

static int FtpSendCmd(const char *cmd, struct stream_priv_s *nControl,char* rsp){  int l = strlen(cmd);  int hascrlf = cmd[l - 2] == '/r' && cmd[l - 1] == '/n';  if(hascrlf && l == 2) mp_msg(MSGT_STREAM,MSGL_V, "/n");  else mp_msg(MSGT_STREAM,MSGL_V, "[ftp] > %s",cmd);  while(l > 0) {    int s = send(nControl->handle,cmd,l,0);    if(s <= 0) {      mp_msg(MSGT_OPEN,MSGL_ERR, "[ftp] write error: %s/n",strerror(errno));      return 0;    }        cmd += s;    l -= s;  }      if (hascrlf)      return readresp(nControl,rsp);  else    return FtpSendCmd("/r/n", nControl, rsp);}
开发者ID:batman52,项目名称:dingux-code,代码行数:24,


示例15: FtpAccess

/* * FtpAccess - return a handle for a data stream * * return 1 if successful, 0 otherwise */GLOBALDEF int FtpAccess(const char *path, int typ, int mode, netbuf *nControl,		netbuf **nData){	char buf[256];	int dir;	if ((path == NULL) &&			((typ == FTPLIB_FILE_WRITE) || (typ == FTPLIB_FILE_READ)))	{		sprintf(nControl->response,				"Missing path argument for file transfer/n");		return 0;	}	sprintf(buf, "TYPE %c", mode);	if (!FtpSendCmd(buf, '2', nControl))		return 0;	switch (typ)	{		case FTPLIB_DIR:			strcpy(buf,"NLST");			dir = FTPLIB_READ;			break;		case FTPLIB_DIR_VERBOSE:			strcpy(buf,"LIST");			dir = FTPLIB_READ;			break;		case FTPLIB_FILE_READ:			strcpy(buf,"RETR");			dir = FTPLIB_READ;			break;		case FTPLIB_FILE_WRITE:			strcpy(buf,"STOR");			dir = FTPLIB_WRITE;			break;		default:			sprintf(nControl->response, "Invalid open type %d/n", typ);			return 0;	}	if (path != NULL)	{		int i = strlen(buf);		buf[i++] = ' ';		if ((strlen(path) + i) >= sizeof(buf))			return 0;		strcpy(&buf[i],path);	}	if (FtpOpenPort(nControl, nData, mode, dir) == -1)		return 0;	if (!FtpSendCmd(buf, '1', nControl))	{		FtpClose(*nData);		*nData = NULL;		return 0;	}	(*nData)->ctrl = nControl;	nControl->data = *nData;	if (nControl->cmode == FTPLIB_PORT)	{		if (!FtpAcceptConnection(*nData,nControl))		{			FtpClose(*nData);			*nData = NULL;			nControl->data = NULL;			return 0;		}	}	return 1;}
开发者ID:vmiklos,项目名称:vmexam,代码行数:72,


示例16: open_f

static int open_f(stream_t *stream,int mode, void* opts, int* file_format) {  int len = 0,resp;  struct stream_priv_s* p = (struct stream_priv_s*)opts;  char str[256],rsp_txt[256];  if(mode != STREAM_READ) {    mp_msg(MSGT_OPEN,MSGL_ERR, "[ftp] Unknown open mode %d/n",mode);    m_struct_free(&stream_opts,opts);    return STREAM_UNSUPPORTED;  }  if(!p->filename || !p->host) {    mp_msg(MSGT_OPEN,MSGL_ERR, "[ftp] Bad url/n");    m_struct_free(&stream_opts,opts);    return STREAM_ERROR;  }  // Open the control connection  p->handle = connect2Server(p->host,p->port,1);    if(p->handle < 0) {    m_struct_free(&stream_opts,opts);    return STREAM_ERROR;  }  // We got a connection, let's start serious things  stream->fd = -1;  stream->priv = p;  p->buf = malloc(BUFSIZE);  if (readresp(p, NULL) == 0) {    close_f(stream);    m_struct_free(&stream_opts,opts);    return STREAM_ERROR;  }  // Login  snprintf(str,255,"USER %s",p->user);  resp = FtpSendCmd(str,p,rsp_txt);  // password needed  if(resp == 3) {    snprintf(str,255,"PASS %s",p->pass);    resp = FtpSendCmd(str,p,rsp_txt);    if(resp != 2) {      mp_msg(MSGT_OPEN,MSGL_ERR, "[ftp] command '%s' failed: %s/n",str,rsp_txt);      close_f(stream);      return STREAM_ERROR;    }  } else if(resp != 2) {    mp_msg(MSGT_OPEN,MSGL_ERR, "[ftp] command '%s' failed: %s/n",str,rsp_txt);    close_f(stream);    return STREAM_ERROR;  }      // Set the transfer type  resp = FtpSendCmd("TYPE I",p,rsp_txt);  if(resp != 2) {    mp_msg(MSGT_OPEN,MSGL_WARN, "[ftp] command 'TYPE I' failed: %s/n",rsp_txt);    close_f(stream);    return STREAM_ERROR;  }  // Get the filesize  snprintf(str,255,"SIZE %s",p->filename);  resp = FtpSendCmd(str,p,rsp_txt);  if(resp != 2) {    mp_msg(MSGT_OPEN,MSGL_WARN, "[ftp] command '%s' failed: %s/n",str,rsp_txt);  } else {    int dummy;    sscanf(rsp_txt,"%d %d",&dummy,&len);  }  if(len > 0) {    stream->seek = seek;    stream->end_pos = len;  }  // The data connection is really opened only at the first  // read/seek. This must be done when the cache is used  // because the connection would stay open in the main process,  // preventing correct abort with many servers.  stream->fd = -1;  stream->priv = p;  stream->fill_buffer = fill_buffer;  stream->close = close_f;  return STREAM_OK;}
开发者ID:batman52,项目名称:dingux-code,代码行数:89,


示例17: FtpOpenPort

/* * FtpOpenPort - set up data connection * * return 1 if successful, 0 otherwise */static int FtpOpenPort(netbuf *nControl, netbuf **nData, int mode, int dir){	int sData;	union {		struct sockaddr sa;		struct sockaddr_in in;	} sin;	struct linger lng = { 0, 0 };	unsigned int l;	int on=1;	netbuf *ctrl;	char *cp;	unsigned int v[6];	char buf[256];	if (nControl->dir != FTPLIB_CONTROL)		return -1;	if ((dir != FTPLIB_READ) && (dir != FTPLIB_WRITE))	{		sprintf(nControl->response, "Invalid direction %d/n", dir);		return -1;	}	if ((mode != FTPLIB_ASCII) && (mode != FTPLIB_IMAGE))	{		sprintf(nControl->response, "Invalid mode %c/n", mode);		return -1;	}	l = sizeof(sin);	if (nControl->cmode == FTPLIB_PASSIVE)	{		memset(&sin, 0, l);		sin.in.sin_family = AF_INET;		if (!FtpSendCmd("PASV",'2',nControl))			return -1;		cp = strchr(nControl->response,'(');		if (cp == NULL)			return -1;		cp++;		sscanf(cp,"%u,%u,%u,%u,%u,%u",&v[2],&v[3],&v[4],&v[5],&v[0],&v[1]);		sin.sa.sa_data[2] = v[2];		sin.sa.sa_data[3] = v[3];		sin.sa.sa_data[4] = v[4];		sin.sa.sa_data[5] = v[5];		sin.sa.sa_data[0] = v[0];		sin.sa.sa_data[1] = v[1];	}	else	{		if (getsockname(nControl->handle, &sin.sa, &l) < 0)		{			perror("getsockname");			return 0;		}	}	sData = socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);	if (sData == -1)	{		perror("socket");		return -1;	}	if (setsockopt(sData,SOL_SOCKET,SO_REUSEADDR,				SETSOCKOPT_OPTVAL_TYPE &on,sizeof(on)) == -1)	{		perror("setsockopt");		net_close(sData);		return -1;	}	if (setsockopt(sData,SOL_SOCKET,SO_LINGER,				SETSOCKOPT_OPTVAL_TYPE &lng,sizeof(lng)) == -1)	{		perror("setsockopt");		net_close(sData);		return -1;	}	if (nControl->cmode == FTPLIB_PASSIVE)	{		if (connect(sData, &sin.sa, sizeof(sin.sa)) == -1)		{			perror("connect");			net_close(sData);			return -1;		}	}	else	{		sin.in.sin_port = 0;		if (bind(sData, &sin.sa, sizeof(sin)) == -1)		{			perror("bind");			net_close(sData);			return 0;		}		if (listen(sData, 1) < 0)		{			perror("listen");//.........这里部分代码省略.........
开发者ID:vmiklos,项目名称:vmexam,代码行数:101,


示例18: FtpCDUp

/* * FtpCDUp - move to parent directory at remote * * return 1 if successful, 0 otherwise */GLOBALDEF int FtpCDUp(netbuf *nControl){	if (!FtpSendCmd("CDUP",'2',nControl))		return 0;	return 1;}
开发者ID:vmiklos,项目名称:vmexam,代码行数:11,



注:本文中的FtpSendCmd函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ FullCircles函数代码示例
C++ FsmChangeState函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。