登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> 程序员学前班[不再更新,只读] >> 主题: [wince/ppc/wininet] 【高分重新开贴】wininet和ConnMgr的问题 [已结贴,结贴人:sduz     [回主站]     [分站链接]
标题
[wince/ppc/wininet] 【高分重新开贴】wininet和ConnMgr的问题 [已结贴,结贴人:sduz
clq
浏览(0) + 2009-03-28 14:21:37 发表 编辑

关键字:

http://topic.csdn.net/u/20080429/18/cc1b12df-10a8-4d58-a6dd-67e76e6d487a.html

【高分重新开贴】wininet和ConnMgr的问题 [已结贴,结贴人:sduzhou]

进入用户个人空间
加为好友
发送私信
在线聊天

* sduzhou
*
* 等级:
* 可用分等级:贫农
* 总技术专家分:67
* 总技术专家分排名:109702
* 揭帖率:69.23%
*


发表于:2008-04-29 18:13:11 楼主
这个问题搞了好久了,也没搞定,比较急
希望大家帮下忙,谢谢
另外感谢zipper_zhao 和lenux对我的问题的耐心解答

我要实现的是windows mobile手机(多普达710)通过GPRS与公网的http服务器连接并进行数据交互

目前的做法
1.先通过ConnMgr函数建立GPRS连接,具体代码也是参照以前的帖子写的
应该已经建立成功,在执行完ConnMgrEstablishConnectionSync,手机信号会显示G符号并提示登陆
2.使用wininet函数与服务器建立连接
InternetOpen(L"client2.exe",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL, 0);成功
接下来如果(1)调用InternetOpenUrl返回却出现12002超时错误
InternetOpenUrl(hOpenHandle,L"http://219.239.132.234/index.htm",NULL,0,INTERNET_FLAG_RAW_DATA,0))
如果(2)在InternetOpen之后不调用InternetOpenUrl而依次调用InternetConnect,HttpOpenRequest均成功,但接着调用HttpSendRequest出现12002或者12029(ERROR_INTERNET_CANNOT_CONNECT The attempt to connect to the server failed) 错误

补充:上述wininet函数当手机通过activeSync连接时,可以通过pc的网络连到服务器上。


另 ConnMgrEstablishConnectionSync怎样建立一个IID_DestNetWAP的连接?好像我建立的时候一直失败
我好想只能建立IID_DestNetInternet的连接。
问题点数:100 回复次数:16 修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* zipper_zhao
*
* 等级:
* 可用分等级:贫农
* 总技术专家分:308
* 总技术专家分排名:54124
*


发表于:2008-04-29 20:56:071楼 得分:20
通过ActiveSync连接可以正常访问说明WinInet没什么大问题.
这里怀疑你的GPRS连接的代理有问题.你建立的IID_DestNetWAP连接的GUID是什么?建立的是Internet连接还是WAP连接?如果是WAP连接,需要你查看一下proxy里的配置是否正确.另外再提醒一下,IID_DestNetWAP指定的meta-network是否已经事先配置过了,微软的Windows Mobile默认是只配了4个meta-network,常有的是Internet网络和WAP网络两个.
如果定义的IID_DestNetWAP连接与系统默认的一致,检查一下你的卡是否能连上GPRS(包括cmnet和cmwap两种),在使用PPC上的ping工具ping一下你的服务器看是否可达,在服务器上抓取数据包分析出错原因.
祝你好运...
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* lenux
* 冀冀他爸
* 等级:
* 可用分等级:富农
* 总技术专家分:13216
* 总技术专家分排名:1274
*

3

4


发表于:2008-04-30 09:46:562楼 得分:20

CONNMGR_CONNECTIONINFO connection;
ZeroMemory(&connection, sizeof(connection));
connection.cbSize = sizeof(connection);
connection.dwParams = CONNMGR_PARAM_GUIDDESTNET;
connection.dwFlags = CONNMGR_FLAG_PROXY_HTTP;
connection.dwPriority = CONNMGR_PRIORITY_USERBACKGROUND;
connection.bExclusive = FALSE;
connection.bDisabled = FALSE;
connection.guidDestNet = IID_DestNetInternet;

*pConnStatus = CONNMGR_STATUS_UNKNOWN;
hr = ConnMgrEstablishConnectionSync(&connection,&g_hConnection, /*INFINITE*/120*1000, pConnStatus);

我用的配置,能上网操作,正常
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* caowenbin
* wenbin
* 等级:
* 可用分等级:掌柜
* 总技术专家分:3177
* 总技术专家分排名:6700
*


发表于:2008-04-30 09:58:203楼 得分:10
ConnMgrMapURL(Url,&guidNetworkObject,&dwIndex;
CONNMGR_CONNECTIONINFO ccInfo;
memset(&ccInfo,0,sizeof(CONNMGR_CONNECTIONINFO));
ccInfo.cbSize=sizeof(CONNMGR_CONNECTIONINFO);
ccInfo.dwParams=CONNMGR_PARAM_GUIDDESTNET|CONNMGR_PARAM_MINRCVBW;
//ccInfo.dwFlags=CONNMGR_FLAG_PROXY_HTTP;
ccInfo.dwPriority=CONNMGR_PRIORITY_USERINTERACTIVE;
ccInfo.guidDestNet=guidNetworkObject;
ccInfo.ulMaxCost=CONNMGR_PARAM_MAXCOST;
ccInfo.ulMinRcvBw=CONNMGR_PARAM_MINRCVBW;
ccInfo.ulMaxConnLatency=CONNMGR_PARAM_MAXCONNLATENCY;
ConnMgrEstablishConnectionSync(&ccInfo,&g_hConnection,dwTimeout,&dwStatus);
我用的这个,用的是CMNET或CDMA
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* sduzhou
*
* 等级:
* 可用分等级:贫农
* 总技术专家分:67
* 总技术专家分排名:109702
*


发表于:2008-04-30 10:01:494楼 得分:0
谢谢ls

1.通过打印出来的信息看,通过GPRS建立的连接时GUID为connmgr.h里定义的IID_DestNetInternet
DEFINE_GUID(IID_DestNetInternet, 0x436ef144, 0xb4fb, 0x4863, 0xa0, 0x41, 0x8f, 0x90, 0x5a, 0x62, 0xc5, 0x72);
这样还需要配置proxy吗?

2.卡本身用IE通过cmnet和cmwap都可以连到服务器以及其他网站

3.我用的是samrtphone,没有ping工具。能不能帮忙提供一个ping工具。
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* sduzhou
*
* 等级:
* 可用分等级:贫农
* 总技术专家分:67
* 总技术专家分排名:109702
*


发表于:2008-04-30 10:55:325楼 得分:0
网上下了个Ping for Smartphone 1.0不管用
数据线连接时连主机都ping不同
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* sduzhou
*
* 等级:
* 可用分等级:贫农
* 总技术专家分:67
* 总技术专家分排名:109702
*


发表于:2008-04-30 11:35:296楼 得分:0
搞了个ppc的ping工具,凑合可以用

ActiveSync连接时,ping主机可以ping通
ping服务器或者其他网站时,第一次ping通,以后都超时

断开后就直接ping不通了

我想问题可能出在ip的问题上
ActiveSync连上手机ip为169.254.2.1(正常)
断开手机ip为127.0.0.1(正常)

用ConnMgrEstablishConnectionSync建立连接后
ip为10.13.218.145之类的局域网ip

10.13.218.145这种ip可以连到公网吗?
怎样才能使手机获得公网的IP呢?

谢谢大家
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* comiunknown
* bobcy
* 等级:
* 可用分等级:中农
* 总技术专家分:859
* 总技术专家分排名:31976
*


发表于:2008-04-30 11:49:487楼 得分:0
你注意过出现错误12002或者12029时,手机的GPRS接入点是cmnet还是cmwap吗?如果是cmwap的话,类似的错误我碰到过,当时的原因是ConnMgrEstablishConnectionSync()成功后获取的hConnection在后面使用时被我提前释放造成的。

还有,如何判断你的手机GPRS接入点时,应该这样写:
PROXY_CONFIG pcProxy = {0};
hr = ConnMgrProviderMessage(m_hConnection, &IID_ConnPrv_IProxyExtension, NULL, 0, 0, (PBYTE)&pcProxy, sizeof(pcProxy));
if (hr == S_OK)
m_hOpen = InternetOpen(TEXT("WceHttp"), INTERNET_OPEN_TYPE_PROXY, pcProxy.szProxyServer, NULL, 0);
else
m_hOpen = InternetOpen(TEXT("WceHttp"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* sduzhou
*
* 等级:
* 可用分等级:贫农
* 总技术专家分:67
* 总技术专家分排名:109702
*


发表于:2008-04-30 11:57:098楼 得分:0
我的应该是cmnet接入点把,调用ConnMgrProviderMessage后都是进E_NOINTERFACE分支。
hr = ConnMgrProviderMessage( hConnection, &IID_ConnPrv_IProxyExtension, NULL, 0, 0, (PBYTE)&pcProxy, sizeof(pcProxy));
if (S_OK == hr)
{
dwAccessType = INTERNET_OPEN_TYPE_PROXY;
AfxMessageBox(L"S_OK");
}
else if (E_NOINTERFACE == hr)
{
dwAccessType = INTERNET_OPEN_TYPE_DIRECT;
AfxMessageBox(L"E_NOINTERFACE");
}
HINTERNET hOpenHandle = InternetOpen(L"client2.exe",
dwAccessType ,
NULL,NULL, 0);
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* comiunknown
* bobcy
* 等级:
* 可用分等级:中农
* 总技术专家分:859
* 总技术专家分排名:31976
*


发表于:2008-04-30 13:57:369楼 得分:0
你确定InternetOpen()返回的hOpenHandle在InternetOpenUrl()中使用时是不为NULL的吗?

如果确定hOpenHandle不为空,第一次调用InternetOpenUrl()如果返回错误,错误号是12002或者12029时,再重复尝试调用InternetOpenUrl()2~3次,看看是不是还是有一样的错误。有可能是网络忙,你要连接的url地址暂时访问超时造成的,深圳这边的 GPRS网络在每天下午6:30~7:30时出问题,连接速度极慢,并且掉线。

确定都不是这些原因的话,把你的:
InternetOpenUrl(hOpenHandle,L"http://219.239.132.234/index.htm",NULL,0,INTERNET_FLAG_RAW_DATA,0))
改成:
InternetOpenUrl(hOpenHandle,L"http://219.239.132.234 /index.htm",NULL,0,INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_RELOAD | INTERNET_FLAG_NO_CACHE_WRITE,0))
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* sduzhou
*
* 等级:
* 可用分等级:贫农
* 总技术专家分:67
* 总技术专家分排名:109702
*


发表于:2008-04-30 15:43:3110楼 得分:0
InternetOpen()已经判断了,不为空。
重复尝试调用InternetOpenUrl和改参数都不管用

用Network Analyzer for Windows Mobile分析了一下结果片段如下
看到下面结果就更蒙了,
明明是基于GUID IID_DestNetInternet上的连接,Adapter Name还是WWAN1-CMWAP-1??!!
然后我又建立IID_DestNetWAP的连接,结果ConnMgrProviderMessage判断时,进的还是E_NOINTERFACE == hr分支??


Network Analyzer running...

+++ AnalyzerIPconfig.dll +++
Windows IP configuration
Ethernet adapter Local Area Connection:
IP Address ........ : 10.13.107.155
Subnet Mask ....... : 255.255.255.0
IP Address ........ : fe80::224c:4fff:fe43:414c
Default Gateway ... : 10.13.107.100
Adapter Name ...... : WWAN1-CMWAP-1
Description ....... : WWAN1-cmwap-1
Adapter Index ..... : 720898
Address............ : 20 4c 4f 43 41 4c
DHCP Enabled....... : YES
DHCP Server........ : 10.13.107.156
Primary WinsServer :
Secondary WinsServer:
Lease obtained on : Wednesday, April 30 ,2008 11 : 45 : 27
Lease expires on : Friday, May 30 ,2008 11 : 45 : 27
AutoConfig Enabled : YES

Tunnel adapter []:
Interface Number .. : 4

Tunnel adapter [6to4 Pseudo-Interface]:
Interface Number .. : 3

Tunnel adapter [Automatic Tunneling Pseudo-Interface]:
Interface Number .. : 2
IP Address ........ : fe80::5efe:10.13.107.155

Host name.......... : dopod710
Domain Name........ :
DNS Servers........ : 221.130.33.52 //DNS有了,这个还令人满意
221.130.33.60
NODETYPE........... : 8
Routing Enabled.... : NO //
Proxy Enabled...... : NO //路由和代理选项貌似有问题
Test Module Result: True
--- AnalyzerIPconfig.dll ---

Network Analyzer挺好用的,工具下载地址ppc和sm版的都有:
http://www.microsoft.com/downloads/details.aspx?familyid=081c6401-49d4-4506-a03b-c41bc76c2f51&displaylang=en
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* sduzhou
*
* 等级:
* 可用分等级:贫农
* 总技术专家分:67
* 总技术专家分排名:109702
*


发表于:2008-04-30 18:24:0211楼 得分:0
up,希望高人指点
问题跟下帖一样
http://topic.csdn.net/u/20071117/17/4f67031b-a6a9-4f71-8aef-b46970c98905.html

代理这样设置行不
因为ConnMgrProviderMessage没有返回代理信息,没法使用ConnMgrProviderMessage返回的参数
InternetOpen(L"client2.exe",INTERNET_OPEN_TYPE_PROXY,NULL,L"10.0.0.172:80", 0);
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* sduzhou
*
* 等级:
* 可用分等级:贫农
* 总技术专家分:67
* 总技术专家分排名:109702
*


发表于:2008-05-04 10:08:3512楼 得分:0
有人恶意刷屏,bs
up一下
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* comiunknown
* bobcy
* 等级:
* 可用分等级:中农
* 总技术专家分:859
* 总技术专家分排名:31976
*


发表于:2008-05-04 11:58:2513楼 得分:50
你确定现在用的cmwap接入?是的话
InternetOpen(L"client2.exe",INTERNET_OPEN_TYPE_PROXY,L"10.0.0.172:80", NULL, 0);

还有前面的连接代码有个地方要修改:
cmnet的写法是:
CONNMGR_CONNECTIONINFO connection;
ZeroMemory(&connection, sizeof(connection));
connection.cbSize = sizeof(connection);
connection.dwParams = CONNMGR_PARAM_GUIDDESTNET;
connection.dwFlags = CONNMGR_FLAG_PROXY_HTTP;
connection.dwPriority = CONNMGR_PRIORITY_USERBACKGROUND;
connection.bExclusive = FALSE;
connection.bDisabled = FALSE;
connection.guidDestNet = IID_DestNetInternet;

cmwap的稍微有些不同:
CONNMGR_CONNECTIONINFO connection;
ZeroMemory(&connection, sizeof(connection));
connection.cbSize = sizeof(connection);
connection.dwParams = CONNMGR_PARAM_GUIDDESTNET;
connection.dwFlags = CONNMGR_FLAG_PROXY_HTTP | CONNMGR_FLAG_PROXY_WAP | CONNMGR_FLAG_PROXY_SOCKS4 | CONNMGR_FLAG_PROXY_SOCKS5;
connection.dwPriority = CONNMGR_PRIORITY_USERBACKGROUND;
connection.bExclusive = FALSE;
connection.bDisabled = FALSE;
connection.guidDestNet = IID_DestNetInternet;

还有,cmwap接入成功之后,用InternetOpenUrl()访问某个web页面,第一次访问得到服务器返回的是WML,即我们用的 10.0.0.172代理服务器response回来的信息,我们还要重新InternetOpenUrl()要访问的web页面一次,这次 response回来的才是该web页面的html源码。手机上用PIE访问估计做过相应的处理,所以我们看不到WML,我们自己的程序则要手工处理 WML。
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* sduzhou
*
* 等级:
* 可用分等级:贫农
* 总技术专家分:67
* 总技术专家分排名:109702
*


发表于:2008-05-04 12:30:3814楼 得分:0
问题解决了,就是InternetOpen代理参数的问题
InternetOpen(L"client2.exe",INTERNET_OPEN_TYPE_PROXY,L"10.0.0.172:80", NULL, 0);
谢谢ls
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* l1w1w1
* 阿伟
* 等级:
* 可用分等级:富农
* 总技术分:323
* 总技术分排名:46321
*


发表于:2009-03-18 12:05:5915楼 得分:0
up一下
修改 删除 举报 引用 回复

进入用户个人空间
加为好友
发送私信
在线聊天

* leiounasi
* 该用户很懒,没有设置昵称
* 等级:
* 可用分等级:短工
* 总技术分:0
* 总技术分排名:338017
*


发表于:2009-03-19 15:25:4516楼 得分:0
求解~现在用的是模拟器,通过ActiveSync可以让模拟器浏览网页了~但是用程序链接的时候始终报错,如果
hOpen = InternetOpen(TEXT("CeHttp"),INTERNET_OPEN_TYPE_PRECONFIG,NULL,0,0);
这样那么if(!(hRequest = InternetOpenUrl(hOpen,lpszServer,NULL,0,INTERNET_FLAG_RELOAD,0)))
{
int error = GetLastError();
}
错误为12029 The attempt to connect to the server failed.
如果是安装楼上两位所说hOpen = InternetOpen(L"CeHttp",INTERNET_OPEN_TYPE_PROXY,L"10.0.0.172:80", NULL, 0);
设置代理的话 那么if(!(hRequest = InternetOpenUrl(hOpen,lpszServer,NULL,0,INTERNET_FLAG_RELOAD,0)))
{
int error = GetLastError();
}
的错误为12031.ERROR_INTERNET_CONNECTION_RESET:The connection with the server has been reset.

用Network Analyzer for Windows Mobile分析了一下结果片段如下:
Network Analyzer running...

+++ AnalyzerIPconfig.dll +++
Windows IP configuration
PPP Adapter [Serial over DMA]:
IP Address ........ : 192.168.55.101
Subnet Mask ....... : 255.255.255.0
IP Address ........ : 192.168.55.100
Default Gateway ... : 10.13.107.100
Adapter Name ...... : Serial over DMA
Description ....... :
Adapter Index ..... : 2
Address............ : 00 00 00 00 00
DHCP Enabled....... : NO

Tunnel adapter []:
Interface Number .. : 4

Tunnel adapter [6to4 Pseudo-Interface]:
Interface Number .. : 3

Tunnel adapter [Automatic Tunneling Pseudo-Interface]:
Interface Number .. : 2
IP Address ........ : fe80::5efe:192.168.55.101

Host name.......... : WM_zn
Domain Name........ : redmond.corp.micosoft.com
DNS Servers........ : 127.0.0.1
NODETYPE........... : 8
Routing Enabled.... : NO
Proxy Enabled...... : NO
Test Module Result: True
--- AnalyzerIPconfig.dll ---

求达人指点一二~~~~~
修改 删除 举报 引用 回复

将帖子提前 放进我的网摘 推荐给好友
我要提问 帖子加分 结贴去... 管理菜单

网站简介|广告服务|银行汇款帐号|联系方式|诚聘英才|English|版权声明|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
文明办网文明上网举报电话:13552009689
Copyright © 1999-2009, CSDN.NET, All Rights Reserved
GongshangLogo


个人空间
add friend
send message
blog
帐号:comiunknown
昵称:bobcy
最新帖子:

1. 请教该如何写存储过…
2. 明年市场上可能出现…
3. 请问可以通过代码清…

更多帖子...

close
abc推荐给好友








总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1