brew真机socket访问外网问题

suyouxin 2010-02-08 03:49:26
小弟需要在brew平台下通过isocket接口访问外网

目前在在opensocket之前调用INETMGR_SetOpt(me->netMgr, INET_OPT_PPP_AUTH, pppConfig, STRLEN(pppConfig));
pppConfig设置为char *pppConfig = "ctnet@mycdma.cn\000vnet.mobi\000";死活访问不了外网

代理的方法,电信10.0.0.200服务器不支持http connect的匿名代理请求,返回401需要鉴权,小弟的程序不止需要访问80
一个端口,还需要访问其它端口。

不知道各位高人有没有什么方法,拜谢了




...全文
822 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
xcj_ysu 2010-05-04
  • 打赏
  • 举报
回复
用曹老师的话就是楼主没有参加过培训。
受电信规范,setopt这个接口OEM厂商一般是不支持的。当然个别手机也支持。
如果要用socket去接外网,需要到信源公司去做个什么域名转换(具体我也没搞明白)。如果先麻烦,可以直接使用http协议,利用电信的10.0.0.200代理去接外网。实在还不明白,建议直接问曹老师
http://blog.csdn.net/wireless_com/archive/2010/02/04/5287619.aspx
gale56 2010-03-30
  • 打赏
  • 举报
回复
我现在连接10.0.0.200总是提示连接超时,为什么呢?
qingqing2300 2010-03-08
  • 打赏
  • 举报
回复
引用 13 楼 suyouxin 的回复:
我安楼上说的,改成ctnet@mycdma.cn\0vnet.mobi\0    长度写为22  同样返回EUNSUPPORTED
              改成ctnet@mycdma.cn\000vnet.mobi\000    长度写为26  同样返回EUNSUPPORTED 

个人认为这个似乎不是问题的关键,就算字符串写错了,顶多是个语法错误,而不应该是个EUNSUPPORTED

ctnet@mycdma.cn\0vnet.mobi\0 是28个字符啊
怎么是22个呢?
sxcnfly 2010-02-10
  • 打赏
  • 举报
回复
确定高级权限中的All(system)打勾了,如果这样真要问OEM了。
suyouxin 2010-02-10
  • 打赏
  • 举报
回复
开了system了,还是返回的EUNSUPPORTED,模拟器和真机上都是返回这个。

真机是用的LG kv920,奇怪啊
sxcnfly 2010-02-10
  • 打赏
  • 举报
回复
忘说了一点,mif中必须开启system权限哦。呵呵。
suyouxin 2010-02-10
  • 打赏
  • 举报
回复
我安楼上说的,改成ctnet@mycdma.cn\0vnet.mobi\0 长度写为22 同样返回EUNSUPPORTED
改成ctnet@mycdma.cn\000vnet.mobi\000 长度写为26 同样返回EUNSUPPORTED

个人认为这个似乎不是问题的关键,就算字符串写错了,顶多是个语法错误,而不应该是个EUNSUPPORTED
sxcnfly 2010-02-10
  • 打赏
  • 举报
回复
引用 11 楼 suyouxin 的回复:
没理解SDK里面的解释
pOptVal's type is char *, and the format of the inputted string must be: "userid\000passwd\000".

呵呵,这是sdk写错了,只是\0不是\000
suyouxin 2010-02-10
  • 打赏
  • 举报
回复
没理解SDK里面的解释
pOptVal's type is char *, and the format of the inputted string must be: "userid\000passwd\000".
sxcnfly 2010-02-10
  • 打赏
  • 举报
回复
引用 9 楼 suyouxin 的回复:
谢谢提醒Alex0812,改为"ctnet@mycdma.cn\\000vnet.mobi\\000"后,同样返回EUNSUPPORTED

可能判断了INET_OPT_PPP_AUTH就直接返回EUNSUPPORTED

你写错了,不是ctnet@mycdma.cn\\000vnet.mobi\\000应该是ctnet@mycdma.cn\0vnet.mobi\0
suyouxin 2010-02-10
  • 打赏
  • 举报
回复
谢谢提醒Alex0812,改为"ctnet@mycdma.cn\\000vnet.mobi\\000"后,同样返回EUNSUPPORTED

可能判断了INET_OPT_PPP_AUTH就直接返回EUNSUPPORTED
suyouxin 2010-02-10
  • 打赏
  • 举报
回复
谢谢大家,结贴,否掉这个方案了,既然电信打死不让直接访问外网,我们也没办法
lishuqian 2010-02-10
  • 打赏
  • 举报
回复
你干嘛非要这么固执呢,STRLEN(pppConfig)); 换成 sizeof();
那个格式是固定的。
strayedbird 2010-02-10
  • 打赏
  • 举报
回复
INET_OPT_PPP_AUTH 不支持,并不是OEM问题,是运营商不让,因为wap和net的资费不同。可能有的OEM提供其它接口设置PPP帐号。
所有应用不允许申请system权限,到电信的UBT测试时会被fail掉。
lishuqian 2010-02-09
  • 打赏
  • 举报
回复
你的使用有问题,
调用INETMGR_SetOpt(me->netMgr, INET_OPT_PPP_AUTH, pppConfig, STRLEN(pppConfig));
pppConfig设置为char *pppConfig = "ctnet@mycdma.cn\000vnet.mobi\000";
STRLEN(pppConfig) = 15;
"ctnet@mycdma.cn\000vnet.mobi\000"中有\0会自动认为这个字符串结束了。这样你写进去的只有15个字节。
Alex0812 2010-02-09
  • 打赏
  • 举报
回复
当年NBA曾经掌劈奥胖
sxcnfly 2010-02-09
  • 打赏
  • 举报
回复
引用 6 楼 lishuqian 的回复:
你的使用有问题,
调用INETMGR_SetOpt(me->netMgr, INET_OPT_PPP_AUTH, pppConfig, STRLEN(pppConfig));
pppConfig设置为char *pppConfig = "ctnet@mycdma.cn\000vnet.mobi\000";
STRLEN(pppConfig) = 15;
"ctnet@mycdma.cn\000vnet.mobi\000"中有\0会自动认为这个字符串结束了。这样你写进去的只有15个字节。

仔细一看,果然长度有问题。
sxcnfly 2010-02-08
  • 打赏
  • 举报
回复
既然你都可以访问网络了,肯定不是权限的问题,你要咨询一下OEM,他们实现了INET_OPT_PPP_AUTH此属性了没有
suyouxin 2010-02-08
  • 打赏
  • 举报
回复
INETMGR_SetOpt 返回EUNSUPPORTED 是否是我的mif没有开某个库?
suyouxin 2010-02-08
  • 打赏
  • 举报
回复
谢谢楼上的回复,楼上没明白我的意思哈

实现这个有两个办法,一是直接通过isocket拨上外网,这也是最好的办法,我遇到的问题是
INETMGR_SetOpt(me->netMgr, INET_OPT_PPP_AUTH, pppConfig, STRLEN(pppConfig));返回20,EUNSUPPORTED
这里卡住了。

第二个办法,改用代理的方法,去连接电信的10.0.0.200服务器,可以连接上服务器但服务器不支持http connect的匿名代理请求,返回401需要鉴权,小弟目前又无法得到电信的用户名支持。

所以能想到的2个办法都想了,大家帮忙想想
加载更多回复(2)

949

社区成员

发帖
与我相关
我的任务
社区描述
为开发者提供高通丰富的解决方案及全面技术下载内容。本版以AI人工智能、WoS移动笔记本、XR、IoT 物联网、Auto 汽车、生成式AI等核心板块组成,为开发者提供一个便捷及高效的学习交流平台。
人工智能物联网机器学习 企业社区 北京·东城区
社区管理员
  • Qualcomm开发
  • csdnsqst0050
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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