【问题标题】:Finding IP of servers [closed]查找服务器的 IP [关闭]
【发布时间】:2014-09-11 05:22:44
【问题描述】:
我正在学习套接字和客户端-服务器应用程序。似乎推荐的方法是服务器应该有一个固定的 IP 地址,以便客户端可以找到它。这个对吗?似乎应该有某种类型的启动技术,在初始化服务器(或客户端)上的程序通常可以将其 IP 地址广播到网络上的其他计算机,以便在服务器 IP 地址更改客户端的情况下仍然可以找到它。这可能吗?我相信“多播”可能会有所帮助,但似乎并不总是支持这一点和/或必须将路由器/交换机配置为接受这一点,否则该技术将失败。这个对吗?我看到有一些方法可以使用 UDP 向网络上的任何计算机广播,但我不清楚接收方计算机如何在没有设置套接字的情况下以清晰的方式访问它——如果其他计算机已经在同一端口上广播?程序整理以识别接收到的数据包只是协议问题吗?我只需要了解有关套接字的更多信息吗?任何和所有关于我可以查看的建议/指针将不胜感激。提前非常感谢!
【问题讨论】:
标签:
sockets
udp
multicast
broadcast
【解决方案1】:
我正在学习套接字和客户端-服务器应用程序。它似乎
好像推荐的方法是服务器应该有一个固定的
IP 地址,以便客户端可以找到它。这是正确的吗?
是的。
似乎应该有某种类型的启动技术
初始化服务器(或客户端)上的程序通常可以
将他们的 IP 地址广播到网络上的其他计算机,所以
如果服务器 IP 地址发生变化,客户端仍然可以找到
它。这可能吗?
是的。
我相信“多播”可能会有所帮助,但似乎确实如此
并不总是支持和/或必须将路由器/交换机配置为
接受这一点,否则该技术将失败。这是正确的吗?
不,多播在这里并没有真正的帮助,你提到了原因,你应该提前知道多播地址。
我发现有一些方法可以使用 UDP 向任何
网络上的计算机,但我不清楚收件人如何
计算机可以在没有套接字的情况下以清晰的方式访问它
设置 - 如果其他计算机已经设置,不会有混乱
在同一个端口广播?
您只是偶尔为您的客户做一次广告,例如每 5 秒或每 1 分钟,无论您认为合适的时间间隔。如果有人也在这个端口上发送 - 那么你应该使用一些独特的结构、幻数等来区分一个数据包和另一个数据包。
是否只是协议问题让程序整理识别
收到的数据包?
是的,是的。在 UDP 上。
我是否只需要了解有关套接字的更多信息?
绝对是的。我推荐这本书:Unix Network programming,很好,即使你运行非UNIX环境。