我正在编写客户端-服务器应用程序,我需要我的服务器来查找某个网络中的所有客户端。我已经在这里找到了一些信息:Discovering clients on a wifi network ,但我仍然不明白如何实现这一点。也许有人可以告诉我在哪里可以找到一些代码示例。
提前致谢。
PS。在 C++、Windows 上工作。最佳答案
一般使用 TCP/IP 作为客户端和服务器之间的通信协议(protocol)。对于Windows平台,Winsock库用于实现TCP/IP。服务器绑定(bind)并监听端口上的传入连接。就像 stackoverflow 这样的网络服务器默认监听端口 80,然后客户端(浏览器)连接到它。
这是一个link to start 。 Here is sample
通常,所有客户端都会连接到监听定义良好的端口的服务器。服务器只是一个,因此所有客户端都知道 IP 地址和端口,因此他们可以连接到它。
在您的情况下,您希望服务器能够发现网络中的所有客户端。为了实现这一点,服务器需要向网络广播一些消息。客户端将收到此消息并向服务器做出响应,告知他们在该 IP 上可用,并且可以连接到服务器或向服务器提供附加信息。通常使用有限广播而不是广播。所有的客户端和服务器都会订阅多播组,这是一种特殊的IP地址。当服务器向该多播地址发送消息时,作为该地址的订阅者的所有客户端都将收到该消息并可以做出响应。这是sample
编辑:您还可以使用boost lib来实现多播:sender eg. , receiver eg.
关于c++ - 查找网络中的所有客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10863625/