#include <ncftp.h>
#pragma comment(lib,"libncftp.lib")
#pragma comment(lib,"sio.lib")
#pragma comment(lib,"Strn.lib")

void upload()
{
 InitWinsock();
 
 FTPLibraryInfo m_li;
 FTPInitLibrary(&m_li);

 FTPConnectionInfo m_ci;
 FTPInitConnectionInfo(&m_li, &m_ci, kDefaultFTPBufSize);

 //进度指示
 m_ci.useProgressMeter = 1;
 //进度指示回调函数
 m_ci.progress = ProcFTPProgressMeter;

 //登录
 strncpy(m_ci.host, "localhost", sizeof(m_ci.host) - 1);
 strncpy(m_ci.user, "username", sizeof(m_ci.user) - 1);
 strncpy(m_ci.pass, "password", sizeof(m_ci.pass) - 1);
 int ret = FTPOpenHost(&m_ci) ;
 assert(ret == 0);

 //上传文件
 int result = FTPPutFiles3(
  &m_ci,
  "C:\\test.txt",
  "/",
  kRecursiveNo,
  kGlobYes,
  kTypeBinary,
  kAppendNo,
  NULL,
  ".tmp",
  kResumeNo,
  kDeleteNo,
  ProcFTPConfirmResumeUpload, //文件已存在的处理方式回调函数
  0);
 assert(ret == 0);

 //重命名文件
 int result = FTPRename(
   &m_ci,
   "/test.txt",
   "/1-1-test.txt");
 assert(ret == 0);

 //退出登录 
 FTPAbortDataTransfer(&m_ci);
 FTPCloseHost(&m_ci);

 DisposeWinsock();
}

int ProcFTPConfirmResumeUpload(
 const FTPCIPtr cip,
 const char *localpath,
 longest_int localsize,
 time_t localmtime,
 const char **remotepath,
 longest_int remotesize,
 time_t remotetime,
 longest_int *startPoint)
{
 
 return kConfirmResumeProcSaidOverwrite;
 
 /*
 //可以根据自己的需要返回如下值
 kConfirmResumeProcSaidSkip
 kConfirmResumeProcSaidResume
 kConfirmResumeProcSaidOverwrite
 kConfirmResumeProcSaidAppend
 kConfirmResumeProcSaidBestGuess
 */
}

void ProcFTPProgressMeter(const FTPCIPtr f, int status)
{
 if ( status == kPrInitMsg )
 {
 }
 else if (status == kPrEndMsg )
 { 
 }
 else if (status==kPrUpdateMsg )
 {
  //percentCompleted=f->percentCompleted;
  //kBytesPerSec=f->kBytesPerSec;
  //bytesTransferred=f->bytesTransferred;
 } 
}

 这段代码基于libncftp-3.2.5。

参考网站:
http://www.ncftp.com/libncftp/
http://www.ibm.com/developerworks/cn/aix/library/au-ncftp_flex/


本文链接地址: libncftp的基本用法
https://blog.qingfengju.com/index.asp?id=333

分类:Win32/C++ 查看次数:6108 发布时间:2013/4/20 10:42:23

0.简介
samba是基于NETBIOS协议的文件共享服务。  

1.安装

apt-get install samba
2.设置可以连接的用户
smbpasswd -a <用户名>
注意这里的<用户名>是操作系统中存在的用户。
3.修改配置
vi /etc/samba/smb.conf
[global]
security = user
 
#特殊共享目录,用户的home目录
[homes]
read only = no
create mask = 0755
directory mask = 0755
 
#自己增加的共享目录
[opt]
path = /opt
browseable = yes
read only = no
create mask = 0755
directory mask = 0755
valid users = vod
available = yes
 
改完参数记得要重启:
service samba stop
service samba start
或者:
/etc/init.d/samba restart
4.使用方法
4.1 Windows下访问
如同Windows的文件共享。
 
4.2 Debian/Linux下访问
apt-get install smbclient
之后可以使用smbclient来操作。
 
参考:
http://yuanbin.blog.51cto.com/363003/115761/
http://blog.sina.com.cn/fanjunchengspace
http://www.51cto.com/html/2005/1202/12843.htm
 

本文链接地址: Debian下安装samba服务
https://blog.qingfengju.com/index.asp?id=325

分类:Linux 查看次数:3604 发布时间:2013/4/12 18:56:03