2014-09-11 177 views
-2

我正在学习套接字和客户端 - 服务器应用程序。看起来好像推荐的方法是服务器应该有一个固定的IP地址,以便客户端可以找到它。它是否正确?似乎应该有某种类型的启动技术,在初始化时,服务器(或客户端)上的程序通常可以将其IP地址广播到网络上的其他计算机,以便在服务器IP地址更改客户端仍然可以找到它。这可能吗?我相信“组播”可能会有所帮助,但似乎并不总是支持此功能,并且/或者路由器/交换机必须配置为接受此功能,否则该技术将失败。它是否正确?我发现有很多方法可能使用UDP来广播到网络上的任何一台计算机,但我不清楚接收方计算机如何在没有套接字设置的情况下以清晰的方式访问它 - 如果没有套接字,就不会有混乱其他电脑已经在同一端口上广播了?该程序是否只是一个协议问题,以便识别接收到的数据包?我只需要更多地了解套接字?任何和所有的建议/指针,我可以看看将不胜感激。非常感谢!查找服务器的IP地址

回答

1

我正在学习套接字和客户端 - 服务器应用程序。它似乎 好像推荐的方法是服务器应该有一个固定的IP地址 ,以便客户端可以找到它。它是否正确?

是的。

看起来好像应该有一些类型的启动技术,其中上 初始化服务器(或客户端)上的程序可能一般 广播自己的IP地址给网络上的其他计算机,所以 那如果服务器IP地址发生变化,客户端仍然可以找到 它。这可能吗?

是的。

我认为,“多播”可能会有所帮助,但它好像并不总是支持 和/或路由器/交换机必须配置为 接受本或技术会失败。它是否正确?

不,组播地址在这里没有什么帮助,你提到了为什么,而且你应该事先知道多播地址。

我看到有办法也许是使用UDP广播到任何 网络上的计算机,但它不是我清楚如何收件人 计算机可以不已经是一个插座 一套以明确的方式访问这个如果其他计算机已经在同一个端口上广播了 ,会不会有混淆?

您只需在一段时间内宣传您的客户,例如每5秒或每1分钟一次,无论间隔多长时间,您都可以发现。如果有人也在这个端口上发送 - 那么你应该使用一些独特的结构,幻数等来区分一个包。

这只是一个协议问题,程序识别 接收的数据包?

是的。在UDP上。

我只需要了解更多关于套接字?

绝对是的。我建议这本书:Unix Network programming,这很好,即使你运行非UNIX环境。