【问题标题】:Client-Server IPs on different networks不同网络上的客户端-服务器 IP
【发布时间】:2014-09-06 05:49:19
【问题描述】:
假设我创建了一个客户端-服务器应用程序。服务器:Swing 应用程序——客户端:swing 应用程序,服务器:swing 应用程序——客户端:android 应用程序......随便。一般的想法是:服务器侦听某个端口,您通过套接字建立连接(将服务器的IP地址设置为客户端应用程序)并将消息从客户端传输到服务器等......如果客户端和服务器是可以的在同一个网络上。但是如果客户端在不同的网络上,如何指定服务器的IP地址???
【问题讨论】:
标签:
sockets
ip
client-server
【解决方案1】:
如果客户端和服务器位于不同的网络上(最常见的情况是客户端通过 Internet 连接到服务器),则网络之间必须有路由器才能相互通信。如果服务器是 NAT,则连接到 NAT 的公共 IP,然后 NAT 连接到服务器。如果 NAT 本身位于另一个 NAT 之后,则使用该 NAT 的公共 IP,然后连接到服务器所连接的 NAT。等等。换句话说,您不会知道服务器的私有 LAN IP,也不需要知道。您改为使用其公共 WAN IP。或者,您可以在 DNS 查找中使用服务器主机名解析到的任何公共 IP(如果它已分配主机名)。