c++ - 查找网络中的所有客户端

标签 c++ c windows tcp

我正在编写客户端-服务器应用程序,我需要我的服务器来查找某个网络中的所有客户端。我已经在这里找到了一些信息:Discovering clients on a wifi network ,但我仍然不明白如何实现这一点。也许有人可以告诉我在哪里可以找到一些代码示例。

提前致谢。

PS。在 C++、Windows 上工作。

最佳答案

一般使用 TCP/IP 作为客户端和服务器之间的通信协议(protocol)。对于Windows平台,Winsock库用于实现TCP/IP。服务器绑定(bind)并监听端口上的传入连接。就像 stackoverflow 这样的网络服务器默认监听端口 80,然后客户端(浏览器)连接到它。

这是一个link to startHere is sample

通常,所有客户端都会连接到监听定义良好的端口的服务器。服务器只是一个,因此所有客户端都知道 IP 地址和端口,因此他们可以连接到它。

在您的情况下,您希望服务器能够发现网络中的所有客户端。为了实现这一点,服务器需要向网络广播一些消息。客户端将收到此消息并向服务器做出响应,告知他们在该 IP 上可用,并且可以连接到服务器或向服务器提供附加信息。通常使用有限广播而不是广播。所有的客户端和服务器都会订阅多播组,这是一种特殊的IP地址。当服务器向该多播地址发送消息时,作为该地址的订阅者的所有客户端都将收到该消息并可以做出响应。这是sample

编辑:您还可以使用boost lib来实现多播:sender eg. , receiver eg.

关于c++ - 查找网络中的所有客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10863625/

相关文章:

c++ - 在 C++ Ubuntu 12.04 上使用 GMP

c++ - 对象创建异常

java - 使用 GetPrimitiveArrayCritical 和 Get<PrimitiveType>ArrayRegion 之间的权衡是什么?

c++ - 为什么 C 编译器会丢弃我的 &0xFF 掩码?

windows - find.exe 有问题?

c++ - 如何在文本文件中间插入字符?

c - 在 C 中按索引数组对数组进行排序

c - WIN32 内存宏与 cstring 内存操作之间的区别?

windows - 有关拖放的信息!

javascript - 从 Windows 8 Metro 中的 People 应用程序检索联系人缩略图