返回> 网站首页 

[转载]linux广播errno==13

yoours2015-06-27 19:41:01 阅读 1690

简介一边听听音乐,一边写写文章。

原因分析:
没有设置socket的广播SO_BROADCAST属性,或者设置失败却想当然的认为是成功。这时sendto数据返回-1,errno等于13.

1、设置SO_BROADCAST失败,windows上xp是可以成功的
bool bOptVal= 1;  
int n = setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (const char*)&bOptVal, sizeof(bool));  

2、设置SO_BROADCAST成功
int bOptVal= 1;
int n = setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (const char*)&bOptVal, sizeof(int));

参数类型bool,int导致

微信小程序扫码登陆

文章评论

1690人参与,0条评论