我创建一个UDP套接字(centos 6),我想发送广播消息。一切正常,创建套接字工作 - socket(..)返回值= 25,但是:
int val = 1;
if (setsockopt(a, SOL_SOCKET, SO_BROADCAST, &val, sizeof(val)) < 1){
debug("setsockoopt failed with errno: %d, socket %d", errno, a);
}
setsockopt将errno设置为value = 2. Communictaion工作,即时发送udp数据包到xxx255主机,我的所有应用程序都将它重新收到它,但我想知道该错误来自哪里(错误= 2 =没有这样的文件或目录)< / p>
最好的问候
答案 0 :(得分:5)
成功完成后,返回值0;否则 返回值-1,并设置全局变量errno以指示 错误。
这是setsockopt manpage成功时返回0,所以只是你的情况是错的。如果没有错误,那么errno的值是不相关的,这就是为什么你得到一个相当荒谬的价值。
if (setsockopt(a, SOL_SOCKET, SO_BROADCAST, &val, sizeof(val)) != 0){
是你需要的。