首 页文章中心下载中心繁體中文
设为首页
加入收藏
联系我们
您当前的位置:开源盛世-源代码下载网 -> 文章中心 -> VC++专区 -> 文章内容 退出登录 用户管理
栏目导航
· VC++专区 · V B 专区
· GIS 专区 · PDA 专区
· 其他编程 · 网站开发类
· 数据库类 · 软件应用
· 网络安全 · 论文专区
· 综合资讯
热门文章
· Tab Control控件使用...
· 学生档案管理系统
· [图文] 排列组合公式
· UTF-8与GB2312之间的...
· DirectShow下载安装...
· Virtual PC 在PAE模...
· Windows2000终端服务...
· MapInfo上的GIS系统...
· Mapbasic参考手册索...
· MapX应用开发中文讲...
相关文章
VC网络程序设计二则
作者:不详  来源:开源盛世-源代码下载网  发布时间:2005-12-9 18:34:43  发布人:Polaris

减小字体 增大字体

一、使用MFC编写FTP程序

  1、生成CInternetSession变量。
    CInternetSession ses;
  2、打开FTP连接。
    CFtpConnection*     pFTP=ses.GetFtpConnection("ftp.microsoft.com","user","password",port,FALSE);
  3、打开文件。
  CInternetFile* pF=pFTP->OpenFile("abc.exe");

  更简单的是使用
  CFtpConnect::GetFile(...) ; CFtpConnection::PutFile(...) ;可以拷贝文件。
  4、读取文件,由于CInternetFile是CStdFile的派生类,因此可以使用CFile,CStdFile的所有函数。
    pF->Read(...)

  高级用法:
  1、查找文件,列文件目录。(FTP Tree Sample in VC5)
    CFTPFileFind类可以帮助你列出当前目录下的所有文件。用法和CFileFind相同。
  2、断点续传。

  当打开文件后,可以使用CInternetFile::Seek(...)重定位指针。但如果该服务器不支持断点续传会产生异常,应该有相应的捕捉代码。

  其它:
  同样的CHttpConnection的用法也很类似。

二 、在使用Internet后挂断线路
  WinInet API提供的功能很强大,但是当关闭掉Internet事务却不能关闭掉dial up连接。在WinInet API中没有提供相应的函数完成该功能。那么如何才能在关闭掉Internet事务的同时关闭掉dial up连接呢?
  解决方法:

  RAS API可以通过调用RasHangUp(...)关闭连接,但是需要RAS句柄。有两种方法可以得当RAS句柄:
  1、自己建立RAS连接是保存该句柄,但这样做对与解决当前提出的问题是没必要的,
  2、通过RasEnumConnections(...)列举所有句柄。

  所需环境:
  RASAPI32.DLL,该连接库在安装播号网络时会自动安装。
  RAS.H
  RASAPI32.LIB

示范代码:

// Quit a dial up connection - rasapi32.lib und #include "ras.h" needed
bool DisconnectRas()
{
bool bOk = false;
RASCONN ras[20];
DWORD dSize,dNumber,dCount;

ras[0].dwSize = sizeof(RASCONN);
dSize = sizeof( ras );

// Get active RAS - Connection
if( RasEnumConnections( ras, &dSize, &dNumber ) == 0 )
{
bOk = true;

for( dCount = 0; dCount < dNumber; dCount++ )
{
// Hang up that connection
if( RasHangUp(ras[dCount].hrasconn) != 0 )
{
bOk = false;
break;
}
}
}
return bOk;
}

 

End of《VC网络程序设计二则》

[] [返回上一页] [打 印] [收 藏]
 
∷相关“VC网络程序设计二则”文章评论∷
(评论内容只代表网友观点,与本站立场无关!) [更多评论...]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 网站目录 鄂ICP备06007162
开源盛世 版权所有Copyright © 2003-2005 VSCodes.Com. All Rights Reserved.