如何使用域将我的Android应用程序连接到本地服务器?

时间:2016-05-03 09:23:31

标签: android local

我有一个在健身房本地工作的Android应用程序。它通过IP连接到本地服务器。问题是,本地服务器从DHCP访问点获取IP,有时IP更改,导致App无法连接到服务器。

我使用IIS作为Web服务器。我该如何解决这个问题?如果我手动设置IP,它就无法工作。

2 个答案:

答案 0 :(得分:0)

这是一个典型的网络发现问题。您可以使用udp数据包来识别服务器。

client = android app,server =您的本地服务器 服务器实施

  1. 在侦听UDP请求的服务器上打开一个套接字。 (我选择了8888)

  2. 创建一个处理UDP请求和响应的循环

  3. 在循环内部,检查收到的UPD数据包以查看它是否有效
  4. 仍在循环内部,向收到的数据包的IP和端口发送响应
  5. 客户端实施

    1. 在随机端口上打开一个套接字。
    2. 尝试广播到默认广播地址(255.255.255.255)
    3. 遍历所有计算机的网络接口并获取其广播地址
    4. 将循环内的UDP数据包发送到接口的广播地址
    5. 等待回复
    6. 当我们收到回复时,请检查包裹是否有效
    7. 当它有效时,获取包的发件人IP地址;这是服务器的IP地址
    8. 关闭插座!我们不想在其他人的计算机上留下开放的随机端口
    9. http://michieldemey.be/blog/network-discovery-using-udp-broadcast/

      Android - find a server in the network

答案 1 :(得分:0)

您可以使用DDNS使用您选择的DDNS服务将创建的域名访问您的服务器,DDNS系统会自动将其映射到您服务器的DHCP IP。 通常DDNS有一段时间是免费的,然后你必须付费,其他DDNS服务永远是免费的,但是你需要点击你的个人服务帐户才能获得免费服务。

使用DDNS,您只需从现有的DDNS服务(http://dyndns.it/http://www.noip.com/free,ecc ecc)中选择并按照相应网站中的程序进行操作。

请务必知道DDNS服务是否能够在正确的端口收听(如果您不使用其他服务,则可能不是80)