在wince下PPPOE连接的实现

WINCE的PPPOE的连接和XP下基本差不多,都需要用到操作系统自带的PPPOE连接模块,这里具体说下如何使用WINCE5.0自带的PPPOE拨号模块和注意的事项。

       首先建立个拨号器,打开网络设置,点击新建连接,这时连接类型是PPPOE,然后要求选择安全设置,关于加密的内容都不要选择,关于EAP和CHAP可根据需要选择,然后确定就可以,连接时基本就可以使用。
       这里介绍下用代码实现上面的过程,主要实现代码如下,首先是建立拨号器,
RASENTRY     RasEntry = {0};
TCHAR         *lpszName = L"PPPoE";
RasEntry.dwfOptions = RASEO_ProhibitEAP | RASEO_ProhibitMsCHAP | RASEO_ProhibitMsCHAP2 ;
    wcscpy(RasEntry.szDeviceType,RASDT_PPPoE);
    wcscpy(RasEntry.szDeviceName,TEXT("PPPoE Line 0"));
    RasEntry.dwFramingProtocol = RASFP_Ppp;
    RasEntry.dwfNetProtocols = RASNP_Ip;
    RasSetEntryProperties(NULL,lpszName,&RasEntry,sizeof(RASENTRY),NULL,0);
 
    这里隐藏了用户名和密码输入界面,直接在程序中输入,如果需要显示界面,可以在 RasEntry.dwfOptions 参数中添加 RASEO_PreviewUserPw 的属性。
      拨号的过程调用 RasDial 函数实现,代码如下;
     
      RASDIALPARAMS    v_RasDialParams;
    v_RasDialParams.dwSize = sizeof(RASDIALPARAMS);
    TCHAR       *lpszName = L"PPPoE";
    HRASCONN        v_hRasConn;
    wcscpy(v_RasDialParams.szEntryName,lpszName);  
    wcscpy(v_RasDialParams.szUserName,L”admin”);
    wcscpy(v_RasDialParams.szPassword,L”123456”);
    emset(v_RasDialParams.szDomain,0x00,sizeof(v_RasDialParams.szDomain));
    RasDial( NULL, NULL,&v_RasDialParams,0,NULL,&v_hRasConn);
 
    这里假定用户名是 admin,密码是123456,这样就可以进行拨号连接了。
 
    这里需要注意的一个问题,在使用 pppoe进行拨号的过程中,如果将RJ45端口直接接到modern上,连接上网都没有问题,但是如果将网线连接到路由器上,然后路由器连接modern,如果这样的话,如果使用路由器拨号,并且直接用自动获得DHCP也能正常上网,如果不用路由器拨号,而是用wince的pppoe进行拨号,这里显示连接成功,即连接上了pppoe服务器,但是却无法上网和浏览网页,经过分析,其原因是这是wince内核的PPPOE模块自身存在的一个BUG,用过route print发现,此时的默认路由并不是pppoe给的那个,而是路由器给分配的,这样发出的包都无法到达pppoe指定的路由器,这样产生的原因是,你连接的那个路由器本身自带自动分配DHCP的功能,当pppoe连接上后,获得了pppoe分配的ip和默认路由(即网关),这时,由于连接的路由器的作用,又获得了路由器分配的IP和网关,这样新的网关占据了默认路由的位置,所有的包都无法正常发到PPPOE指定的网关,这样就无法上网了,解决的方法有两种,这时双击网络图表,上面有更新IP地址,更新后,网关又恢复了PPPOE的网关,网络连接正常,这个是无意中发现的,还有种就是在连接前用程序将DNS和DHCP设置为自动获得,并重启网卡,这样也可以避免默认路由改变的问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值