求一个能实现FTP或Http客户端的类库,要使用Sockets的! 要求支持多线程,有完整源代码,使用Sockets编程,不要wininter的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ftp client:http://www.codeguru.com/internet/ftpclient.shtmlhttp client:http://www.codeguru.com/internet/httpViaProxy.shtml thanks支持代理,太好了只是ftp类库不支持列目录,遗憾!没有其他的了吗? ftp://pub:[email protected]/vc++高级网络编程.rar一切关于sock的程序,这里都有。记得给分。 《vc++高级网络编程》哪儿有下载?找到一定给分!另外还有没有其他好的WinSock编程的类库(http,ftp客户端)? 另外还有没有其他好的WinSock编程的类库(http,ftp客户端)? 另外还有没有其他好的WinSock编程的类库(http,ftp客户端)?ftp client只要能列目录,是用api编的就可以! http://www.vchelp.net/vchelp/zsrc/httpdl.asp?type_id=39&class_id=1&cata_id=5&article_id=291 http://www.5xsoft.com/data/200109/2008382001.htm在VC中实现FTP功能(1)[ 作者: 孟学桢 添加时间: 2001-9-20 8:39:02 ] 湖北省襄樊电视台 孟学桢 来源:www.ccw.com.cn要联接到FTP服务器,需要两个步骤,首先必须创建一个CInternetSession对象,用类CInterSession创建并初始化一个或几个同时存在的Internet会话(session),并描述与代理服务器的连接(如果有必要的话),如果在程序运行期间需要保持与Internet的连接,可以创建一个CInternetSession对象作为类CWinApp的成员。 MFC中的类CFtpConnection管理我们与Internet服务器的连接,并直接操作服务器上的目录和文件,FTP是MFC的WinInet支持的三个Internet功能之一,我们需要先创建一个CInternetSession实例和一个CFtpConnection对象就可以实现和一个FTP服务器的通信,我们不需要直接创建CFtpConnection对象,而是通过调用CInternetSession::GetFtpConnection来完成这项工作。它创建CFtpConnection对象并返回一个指向该对象的指针。 Ftp连接类的信息 下面我们简要介绍连接类的信息 CInternetSession对象 CInternetSession(LPCTSTR pstrAgent,DWORD dwConText ,DWORD dwAccessType,LPCTSTR pstrProxyName,LPCTSTR pstrProxyBypass,DWORD dwFlags); 在创建CInternetSession对象时调用这个成员函数,CInternetSession是应用程序第一个要调用的Internet函数,它将创始化内部数据结构,以备将来在应用程序中调用。如果dwFlags包含INTERNET_FLAG_ASYNC,那末从这个句柄派生的所有的句柄,在状态回调例程注冊之前,都会出现异步状态。如果沒有打开Internet连接,CInternetSession就会抛出一个例外,AfxThorowInternetException。 GetFtpConnection()函数 CFtpConnection* CIternetSession::GetFtpConnection(LPCTSTR pstrServer,LPCTSTR pstrUserName,LPCTSTR pstrPassword,INTERNET_PORT nPort,BOOL bPassive); 调用这个函数建立一个FTP连接,并获得一个指向CFtpConnection对象的指针,GetFtpConnection连接到一个FTP服务器,创建并返回指向CFtpConnection对象的指针,它不在服务器上进行任何操作。如果打算读写文件,必须进行分步操作。关于查找,打开和读/写文件的信息需参考CFtpConnection和CFtpFileFind类。 对这个函数的调用返回一个指向CFtpConnection对象的指针。如果调用失败,检查抛出的CInternetException对象,就可以确定失败的原因。 GetFile()函数 BOOL GetFile(LPCTSTR pstrRemoteFile,LPCTSTR pstrLocalFile,BOOL bFailExists ,DWORD dwAttributes,DWORD dwFlags,DWORD dwContext); 调用这个成员函数,可以从FTP服务器取得文件,并且把文件保存在本地机器上。GetFile()函数是一个比较高级的例程,它可以处理所有有关从FTP服务器读文件,以及把文件存放在本地机器上的工作。如果dwFlags为FILE_TRANSFER_TYPE_ASCII,文件数据的传输也会把控制和格式符转化为Windows中的等阶符号。默认的传输模式是二进制模式,文件会以和服务器上相同的格式被下载。 pstrRemoteFile和 pstrLocalFile可以是相对于当前目录的部分文件名,也可以是全文件名,在这两个名字中间,都既可以用反斜杠(\)或者正斜杠(/)来作为文件名的目录分隔符,GetFile()在使用前会把目录分隔符转化为适当的字符。 可以用自己选择的值来取代dwContext默认的值,设置为上下文标识符与CFtpConnection对象的定位操作有关,这个操作由CFtpConnection中的CInternetSession对象创建。返回给CInternetSession::OnStatusCallBack的值指出了所标识操作的状态。 如果调用成功,函数的返回为非0,否则返回0,如果调用失败,可以调用Win32函数GetLastError(),确认出错的原因。 PutFile()函数 BOOL PutFile(LPCTSTR pstrLocalFile, LPCTSTR pstrRemoveFile ,DWORD dwFlags, DWORD dwContext); 调用这个成员函数可以把文件保存到FTP服务器。PutFile()函数是一个比较高级的例程,它可以处理有关把文件存放到服务器上的工作。只发送数据,或要严格控制文件传输的应用程序,应该调用OpenFile和 CInternet::Write。利用自己选择的值来取代dwContext默认的值,设置为上下文标识符,上下文标识符是CInternetSession对象创建的CFtpConnection对象的特定操作有关,这个值返回给CInternetSession::OnStateCallBack,从而把操作的状态通报给它所标识的上下文。 如果调用成功,函数的返回为非0,否则返回0,如果调用失败,可以调用Win32函数GetLastError(),确认出错的原因。 连接到FTP站点 建立连接到ftp.microsoft.com的程序,它是一个单文档程序。并且连接由视图类的构造函数完成。 建立单文档程序ftp 在ftpview.h中加入包含#include < afxinet.h > 在ftpview.h中添加如下的成员变量 public: CInternetSession *m_pInetSession; CFtpConnection *m_pFtpConnection; 在ftpview.cpp中的ftpview构造函数中加入下面的代码 CFtpView::CFtpView() { m_pInetSession=new CInternetSession (AfxGetAppName(),1, PRE_CONFIG_INTERNET_ACCESS); try { m_pFtpConnection=m_pInetSession-> GetFtpConnection("FTP.MICROSOFT.COM"); } catch(CInternetException *pEx) { TCHAR szError[1024]; if(pEx->GetErrorMessage(szError,1024)) AfxMessageBox(szError); else AfxMessageBox("There was an exception"); pEx->Delete(); m_pFtpConnection=NULL; } } 在ftpview.cpp中的ftpview析构函数中加入下面的代码 CFtpView::~CFtpView() { if(m_pFtpConnection!=NULL) { m_pFtpConnection->Close(); delete m_pFtpConnection; } delete m_pInetSession; } 编译并且执行程序,如果连接出现问题,将会在一个消息框中报告出错消息。 发送文件到FTP文件服务器 创建一个发送文件到FTP文件服务器的程序 建立单文档程序ftpfw, 在ftpfwview.h中加入包含 #include < afxinet.h > 在ftpfwview.h中添加如下的成员变量 public: bool m_bConnectionAttempted; int m_nFileStatus; 在ftpview.cpp中的ftpview构造函数中加入下面的代码 CFtpfwView::CFtpfwView() { m_bConnectionAttempted=false; } 使用ClassWizard加入新的类CFtpThread,该类派生于CWinThread 在ftpthread.h中加入如下变量 public: static UINT PutFile(LPVOID Status); 添加新类成员函数代码 UINT CFtpThread::PutFile(LPVOID Status) { int *pnFileStatus; 下一页 8 http://www.vckbase.com/code/listcode.asp?mclsid=9&sclsid=903 BHO插件能获取网页播放器的播放信息吗 sendmessage使用消息WM_GETTEXT不能获取数字吗? vc中无法获得组合框的值 读取浏览sgml文件 如何定位当前运行位置?? 如何在单文档界面加入滚动条 CControlBar的刷新问题?(急) 高手强烈请进---很奇怪:函数参数的变异?! 什么函数将消息队列中的键盘消息全部清空? 请教一个 CEdit 的问题,高手请进。 ===========动态视频播放============= 如何让win2000休眠
http://www.codeguru.com/internet/ftpclient.shtmlhttp client:
http://www.codeguru.com/internet/httpViaProxy.shtml
支持代理,太好了
只是ftp类库不支持列目录,遗憾!没有其他的了吗?
记得给分。
找到一定给分!另外还有没有其他好的WinSock编程的类库(http,ftp客户端)?
在VC中实现FTP功能(1)[ 作者: 孟学桢 添加时间: 2001-9-20 8:39:02 ]
湖北省襄樊电视台 孟学桢
来源:www.ccw.com.cn要联接到FTP服务器,需要两个步骤,首先必须创建一个CInternetSession对象,用类CInterSession创建并初始化一个或几个同时存在的Internet会话(session),并描述与代理服务器的连接(如果有必要的话),如果在程序运行期间需要保持与Internet的连接,可以创建一个CInternetSession对象作为类CWinApp的成员。 MFC中的类CFtpConnection管理我们与Internet服务器的连接,并直接操作服务器上的目录和文件,FTP是MFC的WinInet支持的三个Internet功能之一,我们需要先创建一个CInternetSession实例和一个CFtpConnection对象就可以实现和一个FTP服务器的通信,我们不需要直接创建CFtpConnection对象,而是通过调用CInternetSession::GetFtpConnection来完成这项工作。它创建CFtpConnection对象并返回一个指向该对象的指针。 Ftp连接类的信息 下面我们简要介绍连接类的信息 CInternetSession对象
CInternetSession(LPCTSTR pstrAgent,DWORD dwConText ,DWORD dwAccessType,LPCTSTR pstrProxyName,LPCTSTR pstrProxyBypass,DWORD dwFlags); 在创建CInternetSession对象时调用这个成员函数,CInternetSession是应用程序第一个要调用的Internet函数,它将创始化内部数据结构,以备将来在应用程序中调用。如果dwFlags包含INTERNET_FLAG_ASYNC,那末从这个句柄派生的所有的句柄,在状态回调例程注冊之前,都会出现异步状态。如果沒有打开Internet连接,CInternetSession就会抛出一个例外,AfxThorowInternetException。
GetFtpConnection()函数
CFtpConnection* CIternetSession::GetFtpConnection(LPCTSTR pstrServer,LPCTSTR pstrUserName,LPCTSTR pstrPassword,INTERNET_PORT nPort,BOOL bPassive); 调用这个函数建立一个FTP连接,并获得一个指向CFtpConnection对象的指针,GetFtpConnection连接到一个FTP服务器,创建并返回指向CFtpConnection对象的指针,它不在服务器上进行任何操作。如果打算读写文件,必须进行分步操作。关于查找,打开和读/写文件的信息需参考CFtpConnection和CFtpFileFind类。 对这个函数的调用返回一个指向CFtpConnection对象的指针。如果调用失败,检查抛出的CInternetException对象,就可以确定失败的原因。
GetFile()函数
BOOL GetFile(LPCTSTR pstrRemoteFile,LPCTSTR pstrLocalFile,BOOL bFailExists ,DWORD dwAttributes,DWORD dwFlags,DWORD dwContext); 调用这个成员函数,可以从FTP服务器取得文件,并且把文件保存在本地机器上。GetFile()函数是一个比较高级的例程,它可以处理所有有关从FTP服务器读文件,以及把文件存放在本地机器上的工作。如果dwFlags为FILE_TRANSFER_TYPE_ASCII,文件数据的传输也会把控制和格式符转化为Windows中的等阶符号。默认的传输模式是二进制模式,文件会以和服务器上相同的格式被下载。 pstrRemoteFile和 pstrLocalFile可以是相对于当前目录的部分文件名,也可以是全文件名,在这两个名字中间,都既可以用反斜杠(\)或者正斜杠(/)来作为文件名的目录分隔符,GetFile()在使用前会把目录分隔符转化为适当的字符。 可以用自己选择的值来取代dwContext默认的值,设置为上下文标识符与CFtpConnection对象的定位操作有关,这个操作由CFtpConnection中的CInternetSession对象创建。返回给CInternetSession::OnStatusCallBack的值指出了所标识操作的状态。 如果调用成功,函数的返回为非0,否则返回0,如果调用失败,可以调用Win32函数GetLastError(),确认出错的原因。
PutFile()函数
BOOL PutFile(LPCTSTR pstrLocalFile, LPCTSTR pstrRemoveFile ,DWORD dwFlags, DWORD dwContext); 调用这个成员函数可以把文件保存到FTP服务器。PutFile()函数是一个比较高级的例程,它可以处理有关把文件存放到服务器上的工作。只发送数据,或要严格控制文件传输的应用程序,应该调用OpenFile和 CInternet::Write。利用自己选择的值来取代dwContext默认的值,设置为上下文标识符,上下文标识符是CInternetSession对象创建的CFtpConnection对象的特定操作有关,这个值返回给CInternetSession::OnStateCallBack,从而把操作的状态通报给它所标识的上下文。 如果调用成功,函数的返回为非0,否则返回0,如果调用失败,可以调用Win32函数GetLastError(),确认出错的原因。 连接到FTP站点 建立连接到ftp.microsoft.com的程序,它是一个单文档程序。并且连接由视图类的构造函数完成。
建立单文档程序ftp 在ftpview.h中加入包含#include < afxinet.h > 在ftpview.h中添加如下的成员变量
public:
CInternetSession *m_pInetSession;
CFtpConnection *m_pFtpConnection; 在ftpview.cpp中的ftpview构造函数中加入下面的代码
CFtpView::CFtpView()
{
m_pInetSession=new CInternetSession
(AfxGetAppName(),1,
PRE_CONFIG_INTERNET_ACCESS);
try
{
m_pFtpConnection=m_pInetSession->
GetFtpConnection("FTP.MICROSOFT.COM");
}
catch(CInternetException *pEx)
{
TCHAR szError[1024];
if(pEx->GetErrorMessage(szError,1024))
AfxMessageBox(szError);
else
AfxMessageBox("There was an exception");
pEx->Delete();
m_pFtpConnection=NULL;
}
} 在ftpview.cpp中的ftpview析构函数中加入下面的代码
CFtpView::~CFtpView()
{
if(m_pFtpConnection!=NULL)
{
m_pFtpConnection->Close();
delete m_pFtpConnection;
}
delete m_pInetSession;
} 编译并且执行程序,如果连接出现问题,将会在一个消息框中报告出错消息。
发送文件到FTP文件服务器 创建一个发送文件到FTP文件服务器的程序 建立单文档程序ftpfw, 在ftpfwview.h中加入包含 #include < afxinet.h > 在ftpfwview.h中添加如下的成员变量
public:
bool m_bConnectionAttempted;
int m_nFileStatus; 在ftpview.cpp中的ftpview构造函数中加入下面的代码
CFtpfwView::CFtpfwView()
{
m_bConnectionAttempted=false;
} 使用ClassWizard加入新的类CFtpThread,该类派生于CWinThread 在ftpthread.h中加入如下变量
public:
static UINT PutFile(LPVOID Status); 添加新类成员函数代码
UINT CFtpThread::PutFile(LPVOID Status)
{
int *pnFileStatus;
下一页 8