【发布时间】:2016-01-21 07:21:11
【问题描述】:
在过去的几个月里,我一直在创建自己的聊天应用程序。我使用 XMPP 协议,为了实现,我使用 Smack 库 来创建 Android 客户端和 Openfire 作为服务器。
我总是在本地网络中测试应用程序,并且我的网络端口 5222(Openfire 用于连接客户端和服务器的端口)是打开的。
我将我的 Openfire 服务器移至主机并难以将应用程序连接到服务器,我发现我的 ISP 和我的移动网络提供商也关闭了端口 5222。
所以这里有两个问题:
- 有什么办法可以绕过这个限制吗?
- 在 Openfire 中我可以更改我的端口,但我不知道这种应用程序是否有标准端口。
我通过this 测试了我的 ISP 的 IP 地址,所有常用端口都是关闭和端口 80 为好。但我可以使用浏览器并查看任何网站。我也可以使用 ftp(端口 21),为什么我可以使用一些关闭的端口??
【问题讨论】:
-
典型的解决方案是有一个中间服务器,两个应用程序都与之通信并代理两者之间的通信。这样,两个应用程序只发出出站请求(防火墙不会阻止),并且只有服务器需要处理入站请求。
-
你能解释更多(细节)吗,我对代理、中间服务器和任何与它们有关的网络相关的事情一无所知
-
添加了一个澄清的答案。
标签: android networking xmpp openfire smack