当前位置: 代码迷 >> VxWorks >> VxWorks中的select有关问题(哪位高手有使用select来收发Tcp或Udp数据)
  详细解决方案

VxWorks中的select有关问题(哪位高手有使用select来收发Tcp或Udp数据)

热度:3604   发布时间:2013-02-26 00:00:00.0
VxWorks中的select问题(谁有使用select来收发Tcp或Udp数据)
C/C++ code
while(true){    assert(errno==0);//这里取错误号等于0    int ret=select(nfds+1,&readFs,NULL,NULL,&timeOut);    if( ret>0 ){        assert(errno==0x3d0002);//这里必然为0x3d0002(S_objLib_OBJ_UNAVAILABLE),这是为什么?        read();//读数据一切正常    }}


X86主板,双网口,其他好像没有什么特殊了

------解决方案--------------------------------------------------------
有可能是信号量等待超时,设备读写超时,或是其它任何等待但没有得到正确反馈的原因引起的。
你把timeout设长一点试一下!
------解决方案--------------------------------------------------------
建议,select()之后不要直接就去读,最好先用FD_ISSET()判断是否是你要用的fd,然后再去read。
select的时候是检测的整个fd的区间,会把很多不是你要的fd也给检测进去。
这个errno还真不知道咋回事,有可能不影响使用的
------解决方案--------------------------------------------------------
mark下
------解决方案--------------------------------------------------------
Mark
  相关解决方案