簡體   English   中英

需要有關Android套接字編程的建議

[英]Need suggestions for android socket programming

我們正在開發一個可通過wifi發送和接收短信的android應用。 我們使用TCP套接字進行此通信(IP地址和隨機端口),但是問題是,如果我不允許路由器的“端口轉發部分”提供這些端口號,則無法發送消息。 有什么辦法可以解決這個問題?

您可以從選定范圍內隨機選擇端口,並在路由器中轉發該范圍,如下所示:

int端口=(Math.abs(random.nextInt()))%3000 + 1024;

這樣,我生成了一個介於1024和2999之間的隨機數。或者只是選擇一個固定端口。

如果兩個客戶端都位於不同的限制性防火牆之后,則應研究打孔,兩個客戶端都在其中打開與第三台服務器的連接,然后第三台服務器預測在NAT上打開的端口: 使用Java進行NAT遍歷https ://stackoverflow.com / questions / 917385 / nat-traversal-with-java / 請注意,如此處所述,P2P應用程序(即客戶端到客戶端)通常需要這樣做。 是的,它非常復雜和令人討厭:(

您最好使用Amazon Cloud Services之類的東西將消息存儲在雲中,並使用基於推送的機制在消息接收時通知另一方,也許使用長輪詢HTTP。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM