在FreeBSD套接字上将sendto api与多播一起使用时出现“不支持操作”错误

时间:2019-07-11 02:55:46

标签: c udp freebsd multicast sendto

我有一些奇怪的问题。

我想通过FreeBSD套接字上的多播地址来发送数据。

这是示例代码。

// bind socket
bind(sd, (const struct sockaddr *) &saddr, sizeof(saddr));

// send, and address is "ff14::5", port:42557
sendto(socket_id, data, length, 0, (const struct sockaddr *) &saddr, sizeof(saddr));

这在Linux上很好用。

但是当我尝试在FreeBSD套接字上使用此代码时,会出现错误:“不支持操作”。

我在Google上搜索了相关问题,并在下面的帖子https://lists.freebsd.org/pipermail/freebsd-net/2004-February/003053.html

中找到了

此线程介绍了有关多播和使用sendto()的绑定问题。

我理解为什么从此线程在FreeBSD上发生错误,但是我找不到解决该问题的方法。

在没有bind()的情况下,sendto()效果很好

0 个答案:

没有答案