UCOSII下用lwip建立了2个UDP socket任务,一个不接收广播数据,一个只接收广播数据,如何实现这样的要求呢
如题:
我使用lwip 2.0.3在UCOSII上建立了2个UDP Scoket任务,初始化代码如下:
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的广播功能吗?
#define IP_SOF_BROADCAST 1//发送广播包过滤(禁止)功能,1使能,0禁止
#define IP_SOF_BROADCAST_RECV 1//接收广播包过滤(禁止)功能,1使能,0禁止