我正在调用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。

现在我的理解是,如果错误,则应该返回-1;如果成功,则应返回0。
255是什么?我在setsockopt函数调用中犯了任何错误吗?

最佳答案

编辑:只需将loop_back声明为int

int loop_back = 0;


如果您查看手册,则setsockopt返回int

关于c - setsockopt()在udp组播中禁用回送功能时返回255,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32181342/

10-11 08:37