无法通过APN连接到TCP服务器

吉特斯

经过彻底的搜索后,我终于决定发布我的问题,这确实给我带来了噩梦。

在我的应用中,我尝试使用网络运营商互联网并使用以下连接字符串连接到TCP服务器:

url =“ socket://” + ip +“:” + port +“; deviceside = true; connectionTimeout = 30000; apn =; tunnelauthusername =; tunnelauthpassword =;”;

我能够通过手机的浏览器连接到Internet,但无法通过应用程序连接到TCP服务器。

在我的设备中,默认情况下禁用APN身份验证,并且APN,用户ID /密码字段为空白,这就是为什么我将这些参数作为连接字符串中的空白值的原因。

当我尝试使用下面的字符串通过wifi网络连接时:

url="socket://"+ip+":"+port+";deviceside=true;interface=wifi;connectionTimeout=30000"; 

我能够连接到服务器,但无法通过APN连接。

请帮帮我。

我只是被困在这里,找不到出路。

谢谢

彼得·斯特兰奇

有多种连接服务器的方法。您正在做的是指定要在您设置的连接后缀中使用的方法。BB KB文章中记录了可以在连接后缀中使用的选项:

建立HTTP或套接字连接的不同方法

如果您支持的是旧手机(OS 5.0之前的版本),那么这是唯一的选择。但是,这样做的窍门是,您必须在提出请求时弄清楚哪种连接方法将在您的设备上起作用。互联网上散布着很多代码来做到这一点,其中大部分是可疑的。

如果您使用的是OS 5.0或更高版本,则可以使用更高级的API(ConnectionFactory)来简化此操作,并在OS 6.0中使用更高级的功能。这些都记录在BB Java微站点上,请参见此处:

BB OS网络

您使用的选项是GCF框架。如果您仅支持OS 5.0和更高版本,建议您研究“网络API”。您可能还会研究“旧版OS的网络API替代方案”。

这不能回答常见的问题,“浏览器为什么可以连接,而我却无法在我的应用程序中连接?”。这是因为浏览器使用一种称为BIS-B的特殊BlackBerry连接方法。BIS-B的优点在于,它可用于具有BlackBerry资费且无需配置的任何BB手机。不好的是,您无法正确访问它。要访问它,最简单的方法是请求Push支持,即使您不打算立即使用它,也可能将来使用。在上面的页面中对此进行了记录。

但是回到您的问题。未设置TCP配置中的APN值,并不意味着您不必设置它们。如果有人将“; deviceside = true”编码为连接字符串,则“选项”中指定的值将用作默认值-这样的想法是用户可以自行设置这些值,而应用程序开发人员则无需编写任何代码。这些值特定于您的运营商。因此,搜索以找出需要使用的值。您可以将这些值放在“ TCP选项”中(因此不要在连接后缀中对它们进行编码),也可以将它们放在连接后缀中。如果您找不到应该放入的物品,则需要询问承运人。

在大多数BlackBerry资费体系中,通过APN使用直接TCP可能会使用户花费一些数据费用,并且还需要进行配置。另外,您也可以使用WAP 2,WAP 2也可能需要花费数据,但不需要任何配置。两者的优点是它们可以在不使用BlackBerry资费的手机上使用。

我的建议是查看使用ConnectionFactory(网络API)进行连接,但这仅适用于OS 5.0及更高版本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章