hi, I have tried to use the Timeout handling for the function recvfrom_rt(...) in my code. But, when I start the program the function is always blocked, and my program doesn't stop. I'm working in user space.
my code is the next: [... // set time_out TimeOut=500000000; //500ms ioctl_rt(udpSocket,RTNET_RTIOC_TIMEOUT,&TimeOut); // inizializzo il task real-time, tutti i metodi usati devono essere RT task_rt = rt_task_init(4907,1,0,0); //Id_Task, priorità, ... if (task_rt==NULL) // controllo che il task sia stato creato { close_rt(udpSocket); //chiudo il socket printf("task non creato\n"); exit(1); } i=0; //i conta i segmenti t_sum=0; while (i<Npkt) //aspetto l'invio di 10 segmenti 1200000 { *((long*)(&(Buffer[1])))=i; rt_make_hard_real_time(); t_start=rt_get_time(); a=sendto_rt(udpSocket, Buffer, BufferLen,flags, (sockaddr*)&slaveAdrs,(socklen_t) sizeof(sockaddr)); // ricevo il segmento e lo reinvio al mittente for (i_slave=0; i_slave<SLAVE;) // I have 2 Slave { BufferLenRx=recvfrom_rt(udpSocket, BufferRx, sizeof(BufferRx),flags, (sockaddr*)&slaveRx,&lenRx ); if (BufferLenRx==ETIMEDOUT) {//Time Out rt_make_soft_real_time(); rt_task_delete(task_rt); close_rt(udpSocket); printf("TimeOut %d\n",BufferLenRx); exit(1); } //il confronto è tra due unsigned long for(j_slave=0; j_slave<SLAVE; j_slave++) {// controllo chi mi ha risposto if (slaveRx.sin_addr.s_addr==slaveIP[j_slave]) { if (i==(*((long*)(&(BufferRx[1]))))) { i_slave++; continue; } else { //errore uscita rt_make_soft_real_time(); rt_task_delete(task_rt); close_rt(udpSocket); printf("dati errati\n"); exit(1); } } } } t_stop=rt_get_time(); rt_make_soft_real_time(); t_sum+=((long)count2nano(t_stop-t_start)/1000); i++; } ...] do you have any idea? ------------------------------------------------------- This SF.Net email is sponsored by the JBoss Inc. Get Certified Today Register for a JBoss Training Course. Free Certification Exam for All Training Attendees Through End of 2005. For more info visit: http://ads.osdn.com/?ad_idv28&alloc_id845&op=click _______________________________________________ RTnet-users mailing list RTnet-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rtnet-users