 |
|
VC++实现拨号上网程序详解 |
出处:PConline 责任编辑:pcedu |
[03-9-24 11:20]
| 作者:佚名
|
注意 :
你也许注意到了以上代码中的Sleep函数,这里是必需的。需要一定时间来断开连接。如果不等待一段时间,计算机有可能无法正常关闭端口。导致下一次无法拨号,只有重新启动Windows才能解决。要预防此问题也可以调用RasGetConnectStatus函数,方法如下:
RASCONNSTATUS rStatus;
while(RasGetConnectStatus(m_hRasConn,&rStatus)!=ERROR_INVALID_HANDLE)
{
::Sleep(0);
}
4.在以下情况下:
① 浏览网页时有时会出现停止响应,重启explorer后任务栏上的连接状态图标也许会消失。
② 希望在连接成功后,退出程序,再次执行此程序可选择断开连接。
可以调用RasEnumConnection函数来得到当前连接的句柄。
举例如下:
HRASCONN hRasConnect;DWORD dwBuffferSize, dwNumofConnections;//缓冲区大小,连接数
LPRASCONN lpRasConn;
lpRasConn = new RASCONN[3】;//最多可得到3个连接句柄,客户端程序其实不必设为3,因连接数有限,大部分仅一个连接。
lpRasConn[0】.dwSize = sizeof(RASCONN);
dwBuffferSize = 32* sizeof(RASCONN);//求出由3个RASCONN结构构成的缓冲区大小
RasEnumConnections(lpRas Conn, &dw Buffer Size, &dw Numof Connections);//此函数若成功则返回零。
for(DWORD i=0; i {
hRasConnect = lpRasConn[i】.hrasconn;//RASCONN结构的hrasconn成员为RAS连接句柄
RasHangUp(hRasConnect);
::Sleep(2000);
}
delete [】 lpRasConn;
在Windows 98,Visual C++ 6.0下调试通过。
这样,一个实现基本拨号上网功能的程序就完成了。如果你要了解更多有关情况或服务器端程序设计,可以参考MSDN→Platform SDK→Networking and Distributed Services→Remote Access Service的有关内容。(csdn)

PConline姊妹网站PCauto热点推荐-- [专题]雨燕 颐达 开迪 最新动向 [专题]你有你的PCauto地盘没?
相关文章:
| |  |
|  |