调用 setsockopt() returns 255 以禁用 udp 多播中的环回

setsockopt() returns 255 when it is called to disable loopback in udp multicast

我正在调用 setsockopt 函数,如下所示,以关闭我从服务器发送到客户端的相同数据报的环回。

char loop_back = 0;
    if((loop_back_flag = setsockopt(sock, IPPROTO_UDP, IP_MULTICAST_LOOP, (char *)&loop_back, sizeof(loop_back))) == -1)
    {
    // Print Error message 
    }
    else
    {
    // print success message with loop_back_flag value
    }

但我观察到的是:当我打印 loop_back_flag 时,它打印为 255。

现在我的理解是它应该 return -1 错误或 0 如果成功。 这是什么255?我在 setsockopt 函数调用中犯了什么错误吗?

编辑:只需将 loop_back 声明为 int

int loop_back = 0;

如果您查看 man 指南,setsockopt return 一个 int