ITPub博客

首页 > 应用开发 > IT综合 > 在应用程序中实现RAS拨号 (转)

在应用程序中实现RAS拨号 (转)

原创 IT综合 作者:gugu99 时间:2007-10-31 18:08:30 0 删除 编辑
在应用程序中实现RAS拨号 (转)[@more@]

在应用程序中实现RAS拨号

王涛 远程访问服务(RAS)是windows NT操作系统提供的系统服务之一, 通过电话线可以使单独的计算机接入网络,或通过两个RAS对拨使两个 局域网互连。此项服务的功能可以使远程的计算机端点以较低的费用同网络连接。 由于windows NT操作系统的大量使用,远程访问服务功能也被广泛应用,在许多具体的应用程序中,均已通过远程访问服务来实现对远程的资源共享等功能。连通远程访问服务,只要从远程客户机拨通拨号网络就可以了,执行挂断就结束连接,鼠标操作Windows 9 5中的拨号网络可以直接拨通和挂断。但有些时候我们希望在应用程序中RAS 拨号和挂断对用户不可见,那么就需要相应的程序控制来实现RAS拨通和挂断。 Windows 95提供了api函数RasDial,调用系统中建好的拨号网络连接,完成RAS拨号, 同时还提供了API函数RasHangUp断开连接。RasD ial的原形如下: Dword RasDial(LPRASDIALEXTENSIONS IpRasDialExtensions,LP TSTR IpszPhonebo ok,LPRASDIALPARAMS IpRasDialParams,DWORD dw NotifierType,LPVOID IpvNotifier,L PHRASCONN IphRasConn) 此函数的第3个参数为指向RASDIALPARAMS型结构体的指针,它提供了配置RAS拨号的参数;第5个参数为拨号完成后执行的回调函数;第 6个参数是LPHRASCONN型的指针,拨号连接建立好之后将返回此连接的句柄;其他3个参数为NULL即可。函数调用如果成功将返回零,否则返回错误代码,此错误代码的含义可以在头文件Raserror.h中查到。 RASDIALPARAMS型结构体包含7个数据成员:dwSize、szEntryName 、szPhoneNumber、szCallbackNumber、szUserName、szPassword和s zdomain,它们的作用如右表所示。 要挂断已拨通的连接使用RasHangUp函数,需要的参数是此连接的连接句柄。下面介绍使用VC完成RAS拨号的一个例子,其中我们假设RA S端NT服务器连接的内部分机的电话号码是"22",具体步骤如下: 1. 配置好调制解调器,然后在Windows 95的拨号网络中建立一个名为dial的连接。 2. 建立一个Visual C的应用框架,在Setting中为应用程序加入R asapi32.lib静态库。 3. 新建一个对话框,在其上加两个按钮,一个用于拨通,一个用于挂断。 4. 在鼠标点击拨通按钮的响应函数中加入以下代码: RASDIALPARAMS rdParams; DWORD dwRet; rdParams.dwSize=sizeof(RASDIALPARAMS); strcpy(rdParams.szEntryName,"dial"); strcpy(rdParams.szPhoneNumber,"22"); strcpy(rdParams.szCallbackNumber,"*"); strcpy(rdParams.szUserName,"dial"); rdParams.szPassword='; strcpy(rdParams.szDomain,"dial"); hRasConn=NULL; dwRet=RasDial(NULL,NULL,&rdParams,0L,(RASDIALFUNC)RasDia lFunc,&hRasConn) if(dwRet!=0){ //deal with error… } 5. 在此响应函数之前加入如下代码: VOID WINAPI RasDialFunc(UINT unMsg,RASCONNSTATE rasconnstate,DWORD dwError) { } 6. 在鼠标点击挂断按钮的响应函数中加入如下代码: DWORD dwRet; dwRet= RasHangUp(hRasConn); 7. 最后编译执行程序。表1 RASDIALPARAMS型结构体数据成员表 (作者地址:wangtaowt@yahoo.com)




来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-980191/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    3122
  • 访问量
    2223427