需要有关android套接字编程的建议

时间:2012-05-10 19:28:42

标签: java android sockets port

我们正在开发一款通过wifi发送和接收短信的Android应用。 我们使用TCP套接字进行此通信(IP地址和随机端口),但问题是如果我不允许来自路由器的“端口转发部分”的这些端口号,则无法发送消息。 有没有办法摆脱这个问题?

2 个答案:

答案 0 :(得分:0)

您可以从所选范围内随机选择端口,并在路由器中转发该范围,如下所示:

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

这样我在1024和2999之间生成了一个随机数。或者只选择一个固定的端口。

答案 1 :(得分:0)

如果两个客户端都在不同的限制性防火墙后面,您应该考虑一下打孔,其中两个客户端都打开与第三个服务器的连接,然后第三个服务器预测在NAT上打开的端口:NAT traversal with Java,{{3 }}。请注意,这通常是P2P应用程序(即客户端到客户端)所需要的,如此处所述。是的,它非常复杂和讨厌:(

您可能最好使用Amazon Cloud Services等方式将消息存储在云端,并使用基于推送的机制在消息接收时通知对方,可能使用长轮询HTTP。