阅读:3012回复:0
救命!!请教关于vxworks下UDP发广播的问题
我用以下方法在vxworks从A向B发送广播不成功.
假设某端口socket_A已经初始化.绑定到IP192.168.0.1 先打开广播 int optval=1; int optvallen=sizeof(optval); setsocketopt(socket_A, SOL_SOCKET, SO_BROADCAST, (char*)&optval, optvallen); B的IP为192.168.0.2 sendto()中我的目标IP地址如果写B的IP sendip.sin_addr.s_addr=htonl(0xC0A80102);可以发送成功,B也可以接收到A的消息. 写广播地址如: sendip.sin_addr.s_addr=htonl(0xC0A801FF);或 sendip.sin_addr.s_addr=htonl(INADDR_BROADCAST); 则发送失败(A显示发送成功,但B无法收到A的消息),为什么为什么? 注:我用VC写的程序,也向样实现以上算法. 广播地址写成: sendip.sin_addr.s_addr=htonl(0xC0A801FF); 就可以发送成功,vxworks就不行,为什么? 说明(A是vxworks B是VC程序) |
|