Establish dial-up network by programming on Windows
来源:互联网 发布:php内置函数100个 编辑:程序博客网 时间:2024/06/03 19:36
在程序中如何通过modem建立拨号网络?这个问题困扰了我好久,但最近工作需要,只好花时间仔细学习了一把。
首先把Modem的driver安装好之后,使用Hyper Terminal工具测试了一下,使用AT命令可以和我的手机互相打通电话。
然后使用Windows的"New Connection Wizard"新建一个网络连接,Google了老半天,终于找到了一个可以用的ISP,263的,电话号码是95963,用户名和密码都是263。这样使用Windows的工具建立拨号网络,成功的连上了ISP的server,可以使用Browser浏览web page了。
然后拨号网络怎么办呢?原来,需要调用Windows的RAS(Remote Access Service) API,有一些相应的函数可用,但有一个入口参数是,使用Windows的拨号工具建立的拨号网络连接,这个是 RasDial 函数中需要的 EntryName。我不想这样做,又google了老半天,有一个牛人提供了这样一种方法,在自己的程序中,调用 RasDial 之前,建立一个拨号网络连接,然后调用 RasDial,在拨号网络断开之后,再把这个拨号网络连接删除。我想了想,还是放弃了这种方法。
好了,下面贴出我的 Sample Code:
这个是回调函数,在调用RasDial建立拨号连接的过程中,Windows会不停的调用这个函数来报告当前拨号网络的状态和错误信息,非常有用,细节请参考MSDN
void WINAPI RasDialFuncCallback(UINT, RASCONNSTATE state, DWORD err)
{
printf("RasDialFunc, connection state:[%d], error code:[%d]/n", state, err);
}
bool dialUpISP()
{
RASDIALPARAMSA dialParams;
memset(&dialParams, 0, sizeof(dialParams));
dialParams.dwSize = sizeof(dialParams);
//这个变量保存的是这个拨号网络的Handle,以后对这个连接操作都需要这个handle
HRASCONN hRasConnectionHandle = NULL;
//这个 c95963 就是使用Windows的"New Connection Wizard"建立的拨号网络连接的名字,自己随便起的,
strcpy_s(dialParams.szEntryName, "c95963");
strcpy_s(dialParams.szPhoneNumber, "95963");
strcpy_s(dialParams.szUserName, "263");
strcpy_s(dialParams.szPassword, "263");
RasDialA(NULL, NULL, &dialParams, 0, RasDialFuncCallback, &hRasConnectionHandle);
return true;
}
好了,Windows下的搞定了,下面需要学习Linux下如何搞了。
- Establish dial-up network by programming on Windows
- Config for Dial-Up Network working on IFX Modem Based Android Project
- Establish my Network Simulator 2 on Ubuntu
- How to Redial ADSL Dial-up Connection by CSharp
- Batch Programming on Windows
- Network Programming for Microsoft Windows
- 4g dial up相关
- Client and Server Code on Network Programming
- COMPILING AND SETTING UP UNIX NETWORK PROGRAMMING (UNP) LIBRARY
- Establish a web server [php-mysql-apache] on Windows XP
- SIM Programming On Windows Mobile
- first day on windows programming
- last day on windows programming
- Freeglut Windows Programming on NetBeans
- network command on windows platform
- share network connection on windows
- Network Programming for Windows读书笔记1
- Network Programming for Windows读书笔记2
- 飞起网马生成器
- 一个不错的java学习网站
- 在Windows Live Writer中添加Blogger账户
- 2009新环境,新的开始
- 关于scanf的返回值
- Establish dial-up network by programming on Windows
- java解惑之奇数判断
- Eclipse+CDT+MinGW+gdb[转载]
- 记录2009年的第一场雪
- win_set_anchor用法
- 在VMWare上安装VxWorks操作系统
- MyEclipse整合SSH(Struts+Spring+Hibernate)简单登录范例(一)
- 移动 Firefox (Fennec) 怎么了?
- 智能手机的时代