天线|RF射频
直播中

庄金樱

8年用户 182经验值
私信 关注
[问答]

如何关闭该任务socket的广播接收功能呢?

我使用lwip 2.0.3在ucosIII建立了2个UDP Scoket任务,初始化代码如下:
[AppleScript] 纯文本查看 复制代码
  server.sin_family       = AF_INET;  server.sin_port         = htons( 8888); server.sin_addr.s_addr  = htonl( INADDR_ANY );  sock = socket( AF_INET, SOCK_DGRAM, 0 );   bind( sock, (struct sockaddr *)&server, sizeof( server ) );
然后使用recvfrom和sendto接收,发送数据,现在两个任务都可以接收到广播数据,但是任务1不想收到广播数据,如何关闭该任务socket的广播接收功能呢?
如果打开下面的宏,两个任务都无法接收广播数据了,但是任务2我还想接收广播数据。难道lwip不能单独设置某个socket的广播功能吗?
[AppleScript] 纯文本查看 复制代码
#define IP_SOF_BROADCAST                 1//发送广播包过滤(禁止)功能,1使能,0禁止#define IP_SOF_BROADCAST_RECV            1//接收广播包过滤(禁止)功能,1使能,0禁止

回帖(6)

陈桂平

2019-8-30 08:12:51
帮顶
举报

陈秀珍

2019-8-30 08:28:41
创建socket的时候就进行限定
举报

王桂荣

2019-8-30 08:42:11
谢谢原子哥
举报

李叱镡

2019-8-30 08:50:03
setsockopt没有关闭广播功能的参数啊,下面的语句只能打开广播
[AppleScript] 纯文本查看 复制代码
int optVal = 1;setsockopt(sock,SOL_SOCKET,SO_BROADCAST,(void *)optVal,sizeof(int));
举报

更多回帖

发帖
×
20
完善资料,
赚取积分