首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >setsockopt返回errno=2

setsockopt返回errno=2
EN

Stack Overflow用户
提问于 2011-09-21 18:21:58
回答 1查看 3K关注 0票数 1

我正在创建一个UDP套接字(centos 6),我想要发送广播消息。一切正常,创建套接字工作- socket(..)返回value=25,但是:

代码语言:javascript
复制
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将错误号设置为值= 2。通信正常,即时通信向x.255主机发送udp数据包,我的所有应用程序都会收到它,但我想知道错误号是从哪里来的(errno=2=no这样的文件或目录)

诚挚的问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-21 18:27:07

如果成功完成,则返回值0;否则返回值-1,并设置全局变量errno以指示错误。

这是因为setsockopt manpage在成功时返回0,所以这只是你的条件错了。如果没有错误,则errno的值是不相关的,这就是为什么在这里您会得到一个相当荒谬的值。

代码语言:javascript
复制
if (setsockopt(a, SOL_SOCKET, SO_BROADCAST, &val, sizeof(val)) != 0){

就是你需要的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7498191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档