This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

NDK配置说明中提到需要创建一个sys/bios定时器对象来驱动它的主定时器,请问这个定时器在NDK中起什么作用?

Other Parts Discussed in Thread: SYSBIOS

之所以有这个疑问是因为我的网络开发都是在例程的基础上进行的(这个例程是采用c代码进行配置而非XGCONF工具),初始化这些工作都已经完成,我只是做了些许修改,一直以来连接、数据收发都正常,最近需要加个检测网络断开的功能,要求在网线断开后一定时间内可以检测并恢复连接,我的方法是假设若一定时间内没有数据传送就认为网络已断开,于是需要在当前数据发送任务中对send函数设置超时,具体设置如下:

struct timeval sndTOut;
sndTOut.tv_sec=0;
sndTOut.tv_usec=10*1000;
if(0==setsockopt(clientSocket,SOL_SOCKET,SO_SNDTIMEO,&sndTOut,sizeof(sndTOut)))
printf("Set Send Timeout 10ms! \n");

运行后显示设置成功,但是拔掉网线后,send函数却一直处于阻塞状态,设置的超时无效。我猜测是不是跟这个配置中的定时器有关系,NDK中的函数涉及到超时设置的,他的时间基准是不是都建立在这个初始化时候创建的定时器上,但是我在例程中找不到创建这个定时器的相关代码,所以我怀疑可能是初始配置中没有创建这个定时器,导致超时设置无效。盼高人指点迷津!