为客户端更新 serversocket 的 ip 地址的最佳方法是什么?
What is the best way to update the ip adress of serversocket for clients?
我正在 Java.
中使用套接字编写一个小服务器示例
目前我正在使用它进行测试:
server= new Socket(InetAdress.getByName("127.0.0.1"),3333)
但我的计划是将其移至我的 Raspberry Pi。
很遗憾,我没有静态 IP 地址。
在代码中更新IP地址的正确方法是什么?
我考虑过将它存储在网络服务器上并通过 API 访问它,但这听起来不太安全,而且它可能会减慢我的代码速度。
首先,您对 InetAdress.getByName()
的使用是多余的。 Socket
有一个接受 String
作为输入的构造函数:
server = new Socket("127.0.0.1", 3333)
也就是说,您应该为您的服务器注册一个静态域名,并将其 DNS 记录设置为指向您服务器的 IP。然后客户端可以使用该域名连接到服务器,而不是直接使用 IP 地址:
server = new Socket("mydomain", 3333)
如果您的服务器没有静态 IP,可以使用大量免费且便宜的“动态 DNS”服务,这些服务可让您在当前 IP 地址发生变化时更新您的域(通常使用自动化工具来简化 detection-and-update 流程)。
如果服务器在路由器后面,许多路由器都built-in支持为您更新各种 DynDNS 服务。如果您的路由器支持此功能,您可以使用您的 DynDNS 帐户信息对其进行配置,以便它可以在其 WAN IP 更改时自动更新域。
我正在 Java.
中使用套接字编写一个小服务器示例目前我正在使用它进行测试:
server= new Socket(InetAdress.getByName("127.0.0.1"),3333)
但我的计划是将其移至我的 Raspberry Pi。
很遗憾,我没有静态 IP 地址。
在代码中更新IP地址的正确方法是什么?
我考虑过将它存储在网络服务器上并通过 API 访问它,但这听起来不太安全,而且它可能会减慢我的代码速度。
首先,您对 InetAdress.getByName()
的使用是多余的。 Socket
有一个接受 String
作为输入的构造函数:
server = new Socket("127.0.0.1", 3333)
也就是说,您应该为您的服务器注册一个静态域名,并将其 DNS 记录设置为指向您服务器的 IP。然后客户端可以使用该域名连接到服务器,而不是直接使用 IP 地址:
server = new Socket("mydomain", 3333)
如果您的服务器没有静态 IP,可以使用大量免费且便宜的“动态 DNS”服务,这些服务可让您在当前 IP 地址发生变化时更新您的域(通常使用自动化工具来简化 detection-and-update 流程)。
如果服务器在路由器后面,许多路由器都built-in支持为您更新各种 DynDNS 服务。如果您的路由器支持此功能,您可以使用您的 DynDNS 帐户信息对其进行配置,以便它可以在其 WAN IP 更改时自动更新域。