PPC socket通讯的问题

Jurang 2009-04-27 02:48:59
在PPC采用TCP同远程的服务器进行通讯时,如果用手机连用连接线连接着PC进行通讯,一切都正常。但如果通过无线进行通讯时,必须先在IE中输入一个网址,通过IE打开GPRS无线连接,这样通讯才正常。否则connect就会失败。请问如果解决这个问题呢?请达人指点一下。
...全文
58 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Oo_Oo_ 2009-04-27
  • 打赏
  • 举报
回复
jurang,你是怎么改的??
Jurang 2009-04-27
  • 打赏
  • 举报
回复
我的目前是搞定了。但我担心的是如果当前PPC通过CMNET上网,没有问题。但如果通过CMWAP上网的话,就可能出问题。
jinlingzwp 2009-04-27
  • 打赏
  • 举报
回复
有推送页面拦住了,最近论坛这个问题谈论的比较多,LZ去看看其他贴子,应该有解决办法
Oo_Oo_ 2009-04-27
  • 打赏
  • 举报
回复
同学,搞定了没有?

你搞定了,还得帮我搞定呢!
Jurang 2009-04-27
  • 打赏
  • 举报
回复
谢谢楼上。
Oo_Oo_ 2009-04-27
  • 打赏
  • 举报
回复
HRESULT hResult ;
CONNMGR_CONNECTIONINFO ConnInfo;

ZeroMemory(&ConnInfo, sizeof(ConnInfo));
ConnInfo.cbSize = sizeof(ConnInfo);
ConnInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET;
ConnInfo.dwFlags = CONNMGR_FLAG_PROXY_HTTP | CONNMGR_FLAG_PROXY_WAP | CONNMGR_FLAG_PROXY_SOCKS4 | CONNMGR_FLAG_PROXY_SOCKS5;
ConnInfo.dwPriority = CONNMGR_PRIORITY_USERINTERACTIVE;
ConnInfo.guidDestNet = IID_DestNetInternet ;
ConnInfo.bExclusive = FALSE;
ConnInfo.bDisabled = FALSE;

DWORD dwStatus = 0;
hResult = ConnMgrEstablishConnectionSync(&ConnInfo, &m_hConnection, 15*1000, &dwStatus );
(不要忘记ReleaseConnection())

很同情楼主呀,把你在2楼的代码取代掉,试下我的(copy的)
Jurang 2009-04-27
  • 打赏
  • 举报
回复
感谢楼上的指点,我用下面的代码做了一次GPRS连接,但不起作用。不知道是何缘故。
HRESULT hResult = S_FALSE;
DWORD dwIndex = 0;
DWORD dwStatus = 0;
PROXY_CONFIG pcProxy = {0};
DWORD dwAccessType = 0;

ReleaseConnection(); // 清除连接

CONNMGR_CONNECTIONINFO ConnInfo;
ZeroMemory(&ConnInfo, sizeof(ConnInfo));

ConnInfo.cbSize = sizeof(ConnInfo);
ConnInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET;
ConnInfo.dwFlags = CONNMGR_FLAG_PROXY_HTTP; /* | CONNMGR_FLAG_PROXY_WAP | CONNMGR_FLAG_PROXY_SOCKS4 | CONNMGR_FLAG_PROXY_SOCKS5*/
ConnInfo.dwPriority = CONNMGR_PRIORITY_USERINTERACTIVE;
//ConnInfo.guidDestNet = IID_DestNetInternet;
hResult = ConnMgrMapURL(lpszPath, &(ConnInfo.guidDestNet), &dwIndex);
ConnInfo.hWnd = NULL;
ConnInfo.uMsg = 0;
ConnInfo.bExclusive = TRUE;
ConnInfo.bDisabled = FALSE;

hResult = ConnMgrEstablishConnectionSync(&ConnInfo, &m_hConnection, 20*1000, &dwStatus);

pcProxy.dwType = CONNMGR_FLAG_PROXY_HTTP;
hResult = ConnMgrProviderMessage(m_hConnection, &IID_ConnPrv_IProxyExtension, NULL, 0, 0, (PBYTE)&pcProxy, sizeof(pcProxy));
if (S_OK == hResult)
{
m_dwAccessType = INTERNET_OPEN_TYPE_PROXY;
m_strProxyIp = pcProxy.szProxyServer;
}
else if(E_NOINTERFACE == hResult)
{
m_dwAccessType = INTERNET_OPEN_TYPE_DIRECT;
m_strProxyIp = _T("");
}

cytlyy 2009-04-27
  • 打赏
  • 举报
回复
手机连用连接线连接着PC进行通讯,相当于局域网通行。无线网络时,因为你需要先将你的网络连接到公网上,ConnMgrEstablishConnectionSync。而你用IE链接了一个网站时他就是通过IE链接网站时,它就是通过ConnMgrEstablishConnectionSync先连通GPRS的。

7,656

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧