Windows Mobile下连接移动GPRS
2010-08-22 12:41:00 来源:WEB开发网在国际上,通常只有一种GPRS接入方式,在中国有CMWAP和CMNET两个接入点,前者是为手机WAP上网而设立的,后者则主要是为PC、笔记本电脑、PDA等利用GPRS上网服务。它们在实现方式上并没有任何差别,但因为定位不同,所以和 CMNET相比,CMWAP便有了部分限制,资费上也存在差别。
下面这段代码连接CMNET.
//连接GPRS
DWORD dwStatus;// = 0;
HANDLE hConnection=NULL;
CONNMGR_CONNECTIONINFO sConInfo;
memset(&sConInfo, 0 ,sizeof(CONNMGR_CONNECTIONINFO));
sConInfo.cbSize = sizeof(CONNMGR_CONNECTIONINFO);
sConInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET;
sConInfo.dwPriority = CONNMGR_PRIORITY_USERINTERACTIVE;
sConInfo.dwFlags = CONNMGR_FLAG_PROXY_HTTP|CONNMGR_FLAG_PROXY_WAP|CONNMGR_FLAG_PROXY_SOCKS4|CONNMGR_FLAG_PROXY_SOCKS5;
sConInfo.bExclusive = FALSE;
sConInfo.bDisabled = FALSE;
sConInfo.guidDestNet = IID_DestNetInternet; //IID_DestNetWAP
sConInfo.hWnd = 0;
sConInfo.uMsg = 0;
if (FAILED(ConnMgrEstablishConnectionSync(&sConInfo, &hConnection, 60000, &dwStatus))) ;
目前,移动的WAP网关对外只提供HTTP代理协议(80和8080端口)和WAP网关协议(9201端口),彩信还有单独配置接入点是因为彩信服务需要连接专用的服务器。所以把上面那段代码中的IID_DestNetInternet换成IID_DestNetWAP,实际中是不能连通GPRS的。
if (m_hConnection)
{
ConnMgrReleaseConnection(m_hConnection, FALSE);
m_hConnection = NULL;
}
CStringArray StrAry;
CONNMGR_DESTINATION_INFO networkDestInfo = {0};
// 得到网络列表
for ( DWORD dwEnumIndex=0; ; dwEnumIndex++ )
{
memset ( &networkDestInfo, 0, sizeof(CONNMGR_DESTINATION_INFO) );
if ( ConnMgrEnumDestinations ( dwEnumIndex, &networkDestInfo ) == E_FAIL )
{
break;
}
StrAry.Add ( networkDestInfo.szDescription );
更多精彩
赞助商链接