将 &mreq 参数传递给 setsockopt 方法时收到错误

Error received when passing in &mreq argument into setsockopt method

我想将套接字添加到从网络主机接收数据的组中。 http://www.tldp.org/HOWTO/Multicast-HOWTO-6.html 页面清楚地解释了如何使用套接字选项 IP_ADD_MEMBERSHIP 和 ip_mreq 数据结构来获取它。所以我创建了我的 ip_mreq 数据结构(我称我的实例为 mreq)并填写了它的两个属性 imr_multiaddr 和 imr_interface,但是当我将值 &mreq 传递给 optval 参数时,我得到错误:

错误:'ip_mreq *' 类型的参数与 'const char *'

类型的参数不兼容

但是为什么该参数需要 'const char *',而我遵循的指南指出该参数应为 'cont void *' 类型。在此问题之前,我遇到了未定义 ip_mreq 数据结构的问题,但我通过导入 Ws2ipdef 头库解决了这个问题。我认为问题可能是我导入了错误的库,或者我可能需要导入一个额外的库。

我也在使用视觉基础知识用 C++ 编写我的解决方案。

谢谢

But why does that parameter require 'const char *', when the guide I'm following states that the parameter should be of type 'cont void *'

因为setsockopt()除了IP_ADD_MEMBERSHIP之外还有几十个socket选项。

你必须投。

NB 任意互联网资源不是规范引用。