【问题标题】:What is the best way to update the ip adress of serversocket for clients?为客户端更新 serversocket 的 IP 地址的最佳方法是什么?
【发布时间】:2020-08-06 15:28:18
【问题描述】:

我正在用 Java 中的套接字编写一个小的服务器示例。

目前我正在使用它进行测试:

server= new Socket(InetAdress.getByName("127.0.0.1"),3333)

但我的计划是将它移到我的树莓派上。

很遗憾,我没有静态 IP 地址。

在代码中更新 IP 地址的正确方法是什么?

我曾考虑将其存储在网络服务器上并通过 API 访问它,但这听起来不太安全,而且可能会减慢我的代码速度。

【问题讨论】:

    标签: java sockets server serversocket


    【解决方案1】:

    首先,您对InetAdress.getByName() 的使用是多余的。 Socket 有一个构造函数,它接受 String 作为输入:

    server = new Socket("127.0.0.1", 3333)
    

    也就是说,您应该为您的服务器注册一个静态域名,并将其 DNS 记录设置为指向您服务器的 IP。然后客户端可以使用该域名连接到服务器,而不是直接使用 IP 地址:

    server = new Socket("mydomain", 3333)
    

    如果您的服务器没有静态 IP,则可以使用大量免费且廉价的“动态 DNS”服务,这些服务允许您在当前 IP 地址发生变化时使用当前 IP 地址更新您的域(通常使用自动化工具来简化检测和更新过程)。

    如果服务器位于路由器后面,许多路由器都内置支持为您更新各种 DynDNS 服务。如果您的路由器支持这一点,您可以使用您的 DynDNS 帐户信息对其进行配置,以便它可以在其 WAN IP 更改时自动更新域。

    【讨论】:

    • 感谢您的回答。我的路由器支持 dyndns,我找到了一个免费的主机来获取域 :) 工作得很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 2010-10-13
    相关资源
    最近更新 更多