2014-03-05 64 views
0

徹底搜索後,我終於決定發佈我的問題,這真的讓我做惡夢。無法通過APN連接到TCP服務器

在我的應用我試圖連接到使用網絡運營商的互聯網TCP服務器,並使用下面的連接字符串:

URL =「插座://」 + IP +「:」 +端口+「;裝置側=真; connectionTimeout = 30000; APN =; tunnelauthusername =; tunnelauthpassword =;「;

我能夠通過手機的瀏覽器連接到互聯網,但無法通過應用程序連接到TCP服務器。

在我的設備默認情況下禁用APN身份驗證,並且APN,Userid/Password字段爲空,這就是爲什麼我將這些參數作爲連接字符串中的空白值。

當我嘗試使用下面的字符串通過wifi網絡連接:

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

我能夠連接到服務器,但不是通過APN的情況。

請幫我一把。

我只是卡在這裏,找不到出路。

謝謝

回答

1

有多種連接到服務器的方法。你正在做的是指定在你設置的連接後綴中使用的方法。您可以在連接後綴使用的選項都記錄在這裏的BB知識庫文章中:

Different-ways-to-make-an-HTTP-or-socket-connection

如果要支持真正的舊手機(預OS 5.0),那麼這就是你唯一的選擇。但與此訣竅是,你必須找出什麼連接方法將在你的設備上工作,當你提出請求。在互聯網上有大量的代碼可以做到這一點,其中大部分是可疑的。

如果您的操作系統是5.0或更高版本,那麼您可以使用更高級的API(即ConnectionFactory)來簡化操作,並在OS 6.0中實現更高級的功能。這些都記錄在BB的Java微型,在這裏看到:

BB OS Networking

您正在使用的選項是GCF框架。如果您僅支持OS 5.0及更高版本,我建議您調查「網絡API」。您也可以調查「傳統操作系統的網絡API備選方案」。

這並不回答這個問題,「瀏覽器如何連接,我不能在我的應用程序?」。這是因爲瀏覽器使用了稱爲BIS-B的特殊BlackBerry連接方法。關於BIS-B的好處是它可以用於任何擁有黑莓資費的BB電話,並且無需配置。不好的一面是你沒有正確的訪問它。要訪問它,最簡單的方法就是要求Push支持,即使您不打算立即使用它,但可能在將來使用它。這在上面的頁面中有記錄。

但回到你的問題。您的TCP配置中的APN值未設置,並不意味着您不必設置它們。如果某人將「; deviceside = true」作爲連接字符串編碼,則Options中指定的值將用作默認值 - 用戶可以自行設置這些值並且應用程序開發人員不編碼任何內容。這些值是特定於您的運營商的。因此,搜索以找出您需要使用的值。您可以將這些值放入TCP選項中(因此不要將它們編碼到連接後綴中),或放入連接後綴中。如果你不能找出你應該放在那裏,你需要問你的運營商。

在大多數黑莓資費上,通過APN使用直接TCP可能會使用戶花費某些數據,並且還需要配置。或者,您可以使用WAP 2,這也可能會花費數據,但不需要任何配置。這兩者的優點是,他們將在未使用黑莓資費的手機上工作。

我的建議是查看使用ConnectionFactory(網絡API)的連接,但這隻適用於OS 5.0及更高版本。

+0

感謝彼得..我嘗試了與ConectionFactory(網絡API),它終於工作... – Jits

相關問題