using Poco::StreamCopier;
using Poco::Net::FTPClientSession;
int main(int argc,char **argv)
std::string host="192.168.7.155";
std::string username="anonymous";
std::string password="anonymous";
Poco::UInt16 port=21;
FTPClientSession ftpsession(host,port,"","");
ftpsession.login(username,password);
bool logined=ftpsession.isLoggedIn();
std::cout<<"ftp is logined ? "<<logined<<std::endl;
ftpsession.setWorkingDirectory("/SobeyRes/aaa/");
//get file list
std::string str;
std::vector<std::string> filelist;
std::istream &ftpin = ftpsession.beginList("/SobeyRes/aaa/");//下载目录中文件列表
while(ftpin>>str)
{//存储文件列表
filelist.push_back(str);
ftpsession.endList();//关闭目录下载连接
//download all file to local device
for(size_t i=0; i!=filelist.size(); i++)
std::cout<<"cur file is: "<<filelist[i]<<"...\n";
std::ofstream file;
file.open(filelist[i].c_str());
//下载每个文件并存储到字符串content中
Poco::StreamCopier::copyStream(ftpsession.beginDownload(filelist[i].c_str()), file);
ftpsession.endDownload();//关闭下载连接
ftpsession.close();//断开FTP
return 0;
函数声明如下:
POCO
FTP
_API void
ftp
_open(const char* sIp,int nPort);
POCO
FTP
_API bool
ftp
_is_open(void);
POCO
FTP
_API void
ftp
_close(void);
POCO
FTP
_API void
ftp
_login(const char* username,const char* password);
POCO
FTP
_API bool
ftp
_is_logined(void);
POCO
FTP
_API void
ftp
_logout(void);
POCO
FTP
_API void
ftp
_setPassive(bool bPassive);
POCO
FTP
_API void
ftp
_setFileBinary(bool bBinary);
POCO
FTP
_API void
ftp
_setTimeout(int nSeconds);
POCO
FTP
_API bool
ftp
_getPassive(void);
POCO
FTP
_API bool
ftp
_getFileBinary(void);
POCO
FTP
_API int
ftp
_getTimeout(void);
POCO
FTP
_API bool
ftp
_upload_file(const char* filename);
POCO
FTP
_API bool
ftp
_upload_buffer(const char* buffer,const int len);
Poco
C++如何
获取
某个目录下的所有
文件
记录一下自己写的,开始也在网上找了很多
获取
文件
的代码,有一个io.h(这个比较坑,只能windows下用,Linux不行),也有替代的。但用
Poco
库更简单,要运行下面的代码,还需要做以下一些事,配置一下附加包含目录和附加库目录(包含lib路径就行),这时候就可以生成解决方案,但是还不能运行,需要将
Poco
Foundationd.dll放到.exe同目录下即可运行。
#include <iostream>
#include <stdio.h
原文链接:http://grow.sinaapp.com/?p=1271
POCO
(
poco
project.org)看起来是很不错的C++跨平台开源库,包含网络(HTTP、
FTP
等)、正则、XML、Zip、日期、
文件
、线程、通知、配置、日志、Timer等方面的类,只可惜国内使用者和讨论很少。
一、编译安装方法
从官网(
poco
project.org/download)
下载
POCO
源代
Upload a file to a HTTPS url using
POCO
HTTP POST request always returns "SSL Connection Unexpectedly Closed" ExceptionBelow is the code i am using for Multipart upload of a file..try{
Poco
::URI uri(up...
TEMPLATE = appQT += qml quick widgets#LIBS += -l
Poco
Foundation -l
Poco
XML -l
Poco
NetSOURCES += main.cpp \ tnet.cppRESOURCES += qml.qrc# Additional import path used to resolve QML modules in Qt C...
什么是
POCO
库?
POCO
库是强大的的跨平台C++库,可以用来编写多平台的网络应用程序,这些平台包括桌面端、服务端、移动端、IOT(物联网)、嵌入式系统等。总的来说是一个非常强大的综合性库。
为什么使用
Poco
库?
1.支持跨平台
2.性能表现优异
3.API使用方便,便于上手
4.库可以拆分使用,容易实现轻量化调用
5.功能模块丰富
6.
Poco
C++库是在Boost软件许可证下授权的,既可以用来开发非商业应用,也可以用来开发商业应用。可以说是可以自由使用的了。
POCO
库都能做哪些
C++是一个开源的C++类库的集合,它主要提供简单的、快速的网络和可移植应用程序的C++开发,这个类库和C++标准库可以很好的集成并填补C++标准库的功能空缺。
POCO
库的模块化、高效的设计及实现使得
POCO
特别适合嵌入式开发。在嵌入式开发领域,由于C++既适合底层(设备I/O、中断处理等)和高层面向对象开发,越来越流行。当然
POCO
也准备好了面对企业级挑战。
一、
POCO
库简介
学习一个框架前,要先明白它的是什么,为什么,怎么用.下面这些文字,是从中文
poco
官网上转过来的,正如
poco
c++库的特点,非常清晰,代码风格更是一目了然.
poco
开发库的特点,非常适合写后台处理程序,效率也是很高的.前台界面程序使用Qt框架库,非常好,两个库相辅相成,可解决项目上的大部分问题.
值得学习的C/C++语言开源项目(1)ACE
庞大、复杂,适合大型项目。开源、免费,不依赖第三方库,支持跨平台。
http://www.cs.wustl.edu/~schmidt/ACE.html(2)Asio
Asio基于Boost开发的异步IO库,封装了Socket,简化基于socket程序的开发。
开源、免费,支持跨平台。
http://think-async.com/(3)
POCO
void HTTPSession::setTimeout(const
Poco
::Timespan& timeout)
setTimeout(timeout, timeout, timeout);
void HTTPSession::setTimeout(const
Poco
::Timespan& connectionTimeout, const
Poco
::Timespan& se.
外网IP变动自动上报工具。
写这个工具的目的是为了监测一台服务器的外网IP的变动情况。之前办理的电信宽带是有外网IP的,因此把一台小服务器上的ut管理端口开放出来,以便随时都能添加
下载
任务。
但是这...