各位高手,请问怎样在程序中实现拨号上网,怎样断线呢?

Elly 2000-08-25 01:37:00
各位高手,请问怎样在程序中实现拨号上网,怎样断线呢?是不是有API函数可以利用?
Email Add :mailhere@netease.com
...全文
156 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjzhuang 2001-07-30
  • 打赏
  • 举报
回复
回复人: lovebcb(京华) (2001-7-18 15:57:58) 得0分
用BCB编程实现挂断拨号网络功能} 》

{  有一次在用BCB开发程序的过程时,客户要求实现在结束Internet事务(传输文件等)后自动挂断拨号网络的功能,以提高软件的自动化程度。首先想到的方法是使用Windows API实现该功能,但是查遍WIN32 API并没有发现相应的函数。在查阅资料之后终于找到了一种解决的方法,为了给同行以帮助,特将此方法介绍给大家。
  我是使用RAS API来完成这个功能的。使用它需要三个条件:1.计算机中应当安装好拨号网络,此时的Window\system目录下将会存在动态链接库RasApi32.dll,这是实现本功能的前提条件;2.源程序中应当有预编译指令#include ″ras.h″;3.存在库文件RasApi32.lib。
  我的方法中用到了RAS API中提供的两个函数RasHangUp()和RasEnumConnections(),它们的原型和功能如下:
  DWORD RasHangUp(HRASCONN hrasconn),此函数的功能是关闭拨号网络,返回值是0时表示调用成功。它的参数是RAS句柄,该句柄的获得可以通过下面的函数。
  DWORD RasEnumConnections(LPRASCONN lprasconn, LPDWORD lpcb, LPDWORD lpcConnections),这个函数可以获得所有连接的数据。它的三个参数都是指针,第一个指向存放连接数据的缓冲区,该缓冲区由RASCONN结构数组组成。RASCONN结构的成员hrasconn保存了RasHangUp()所需的RAS句柄;第二个参数指向存放缓冲器字节数的变量;第三个参数指向的变量存放了连接的数目。当函数返回值是0时表示调用成功。
  实现挂断拨号网络功能的函数如下:
  bool CloseRas()
  {bool bReturn= false;
  RASCONN ras[20];
  DWORD dSize, dNumber, dCount;
  //函数RasEnumConnections()的要求
  ras[0].dwSize=sizeof(RASCONN);
  dSize =sizeof(ras);
  if (RasEnumConnections(ras, &dSize, &dNumber)==0)
  {bReturn=true;
  //依次关闭所有的连接
  for (dCount=0; dCount<dNumber; dCount++ )
  {if (RasHangUp(ras[dCount].hrasconn)!=0)
  {bReturn=false;
  break;
  }}}
  return bReturn;
  }
  将它加入到程序中适当的位置就可以实现自动挂断拨号网络的功能了,本函数在Windows 98、Borland C++ Builder 5.0中运行成功。  (河北 张利辉)}
wangxd 2001-07-30
  • 打赏
  • 举报
回复
晚了
FengSC 2000-08-28
  • 打赏
  • 举报
回复
当你使用了拨号网络而且请求地址是被子网彦码屏蔽掉的地址TClientSocket会Open时自动调用拨号上网的程序,如果设置为自动拨号可以自动上网.
TClientSocket Close时会自动断线.
springsea 2000-08-28
  • 打赏
  • 举报
回复
往串口写AT指令!
U皮特U 2000-08-25
  • 打赏
  • 举报
回复
源码例子:
http://go.163.com/~freecode/vc/sharecode/netcomm/dial.zip

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧