朋友定了一台掌上笔记本是windowCE系统的,装了网通宽带,却不知道在哪弄宽带连接了。CE系统的下了个PPOE软件安装不上,系统自带的搞不定,请教有经验的帮帮忙!
- 提问者网友:感性作祟
- 2021-04-25 11:36
- 五星知识达人网友:零点过十分
- 2021-04-25 12:54
楼主好,给你找了个资料你看看吧。
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设置为自动获得,并重启网卡,这样也可以避免默认路由改变的问题。
- 1楼网友:十年萤火照君眠
- 2021-04-25 13:54