程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> 在應用程序中實現RAS撥號

在應用程序中實現RAS撥號

編輯:關於C++

遠程訪問服務(RAS)是WindowsNT操作系統提供的系統服務之一,通過電話線可以使單獨的計算機接入網絡,或通過兩個RAS對撥使兩個局域網互連。此項服務的功能可以使遠程的計算機端點以較低的費用同網絡連接。

由於WindowsNT操作系統的大量使用,遠程訪問服務功能也被廣泛應用,在許多具體的應用程序中,均已通過遠程訪問服務來實現對遠程的資源共享等功能。連通遠程訪問服務,只要從遠程客戶機撥通撥號網絡就可以了,執行掛斷就結束連接,鼠標操作Windows95中的撥號網絡可以直接撥通和掛斷。但有些時候我們希望在應用程序中RAS撥號和掛斷對用戶不可見,那麼就需要相應的程序控制來實現RAS撥通和掛斷。

Windows95提供了API函數RasDial,調用系統中建好的撥號網絡連接,完成RAS撥號,同時還提供了API函數RasHangUp斷開連接。RasDial的原形如下:

DWORD RasDial(LPRASDIALEXTENSIONS IpRasDialExtensions,LPTSTR IpszPhonebook,LPRASDIALPARAMS IpRasDialParams,DWORD dwNotifierType,LPVOID IpvNotifier,LPHRASCONN IphRasConn)

此函數的第3個參數為指向RASDIALPARAMS型結構體的指針,它提供了配置RAS撥號的參數;第5個參數為撥號完成後執行的回調函數;第6個參數是LPHRASCONN型的指針,撥號連接建立好之後將返回此連接的句柄;其他3個參數為NULL即可。函數調用如果成功將返回零,否則返回錯誤代碼,此錯誤代碼的含義可以在頭文件Raserror.h中查到。

RASDIALPARAMS型結構體包含7個數據成員:dwSize、szEntryName、szPhoneNumber、szCallbackNumber、szUserName、szPassword和szDomain,它們的作用如右表所示。

要掛斷已撥通的連接使用RasHangUp函數,需要的參數是此連接的連接句柄。下面介紹使用VC完成RAS撥號的一個例子,其中我們假設RAS端NT服務器連接的內部分機的電話號碼是"22",具體步驟如下:

1.配置好調制解調器,然後在Windows95的撥號網絡中建立一個名為dial的連接。

2.建立一個VisualC的應用框架,在Setting中為應用程序加入Rasapi32.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[0]='\0';
strcpy(rdParams.szDomain,"dial");
hRasConn=NULL;
dwRet=RasDial(NULL,NULL,&rdParams,0L,(RASDIALFUNC)RasDialFunc,&hRasConn);
if(dwRet!=0)
{
//dealwitherror…
}

5.在此響應函數之前加入如下代碼:

VOID WINAPI RasDialFunc(UINT unMsg,RASCONNSTATE rasconnstate,DWORD dwError)
{
}

6.在鼠標點擊掛斷按鈕的響應函數中加入如下代碼:

DWORD dwRet;

dwRet=RasHangUp(hRasConn);

7.最後編譯執行程序。

RASDIALPARAMS型結構體數據成員表成員名類型功能

DwSize     DWORD    結構體的大小

SzEntryName   TCHAR數組 調用的撥號連接名稱

SzPhoneNumber  TCHAR數組 撥打的電話號碼

SzCallbackNumer TCHAR數組 要求回撥的電話號碼

SzUserName   TCHAR數組 向RAS登錄的用戶名

SzPassord    TCHAR數組 向RAS登錄的口令

SzDomain    TCHAR數組 向RAS登錄的域

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved