Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在后台运行计时器或在特定位置调用任务? int callBackTimers() { makeTimer(“第一个计时器”&第一个timerid,2,2);//2ms makeTimer(“第二个计时器”&第二个计时器,10,10);//10ms makeTimer(“第三个计时器”和第三个计时器,100100);//100ms 而(1) ;; } int CreateSocket() { socklen_t len=sizeof(客户); //UDP的套接字创建 acceptSocket=socket(AF_INET,SOCK_DGRAM,0); if(acceptSocket==-1) { printf(“失败:套接字创建失败,失败代码\n”); 返回1; } 其他的 { printf(“套接字已启动!\n”); } //非阻塞模式 /*rc=ioctl(acceptSocket,FIONBIO,(char*)&flag); if(rc_C_Linux_Sockets_Timer_Udp - Fatal编程技术网

如何在后台运行计时器或在特定位置调用任务? int callBackTimers() { makeTimer(“第一个计时器”&第一个timerid,2,2);//2ms makeTimer(“第二个计时器”&第二个计时器,10,10);//10ms makeTimer(“第三个计时器”和第三个计时器,100100);//100ms 而(1) ;; } int CreateSocket() { socklen_t len=sizeof(客户); //UDP的套接字创建 acceptSocket=socket(AF_INET,SOCK_DGRAM,0); if(acceptSocket==-1) { printf(“失败:套接字创建失败,失败代码\n”); 返回1; } 其他的 { printf(“套接字已启动!\n”); } //非阻塞模式 /*rc=ioctl(acceptSocket,FIONBIO,(char*)&flag); if(rc

如何在后台运行计时器或在特定位置调用任务? int callBackTimers() { makeTimer(“第一个计时器”&第一个timerid,2,2);//2ms makeTimer(“第二个计时器”&第二个计时器,10,10);//10ms makeTimer(“第三个计时器”和第三个计时器,100100);//100ms 而(1) ;; } int CreateSocket() { socklen_t len=sizeof(客户); //UDP的套接字创建 acceptSocket=socket(AF_INET,SOCK_DGRAM,0); if(acceptSocket==-1) { printf(“失败:套接字创建失败,失败代码\n”); 返回1; } 其他的 { printf(“套接字已启动!\n”); } //非阻塞模式 /*rc=ioctl(acceptSocket,FIONBIO,(char*)&flag); if(rc,c,linux,sockets,timer,udp,C,Linux,Sockets,Timer,Udp,我正在研究客户机和服务器体系结构。上面显示了服务器代码,我创建了一个套接字,通过ip地址和端口号接收来自客户端的请求。服务器正在等待来自客户端的请求,并将响应发送回客户端。当它从客户端接收数据时,它应该调用timer任务,因为我还创建了timer,以便每2ms、10ms和100ms调用一次任务。当我通过套接字接收数据时,应该调用计时器(在我的代码callBackTimers中)。否则它应该在后台运行。如何完成任何一项任务??如果我确实喜欢上面的内容,那么当它收到数据时,计时器将被调用。您是否已经

我正在研究客户机和服务器体系结构。上面显示了服务器代码,我创建了一个套接字,通过ip地址和端口号接收来自客户端的请求。服务器正在等待来自客户端的请求,并将响应发送回客户端。当它从客户端接收数据时,它应该调用timer任务,因为我还创建了timer,以便每2ms、10ms和100ms调用一次任务。当我通过套接字接收数据时,应该调用计时器(在我的代码callBackTimers中)。否则它应该在后台运行。如何完成任何一项任务??如果我确实喜欢上面的内容,那么当它收到数据时,计时器将被调用。

您是否已经多次问过这个问题(或者至少是一个非常类似的问题)?你之前得到的答案有什么问题?我的问题现在不一样了!!!当它从客户端接收到数据时,在我的代码中哪里调用回调定时器?
int callBackTimers()
 {
     makeTimer("First Timer", &firstTimerID, 2, 2);   //2ms
         makeTimer("Second Timer", &secondTimerID, 10, 10);    //10ms
         makeTimer("Third Timer", &thirdTimerID, 100, 100);  //100ms
         while(1)
             ;;
 }

int CreateSocket()
{


    socklen_t len = sizeof(client);
       // Socket creation for UDP

       acceptSocket=socket(AF_INET,SOCK_DGRAM,0);

       if(acceptSocket==-1)

       {

         printf("Failure: socket creation is failed, failure code\n");

         return 1;

       }

       else

       {

         printf("Socket started!\n");

       }

       //non blocking mode
      /* rc = ioctl(acceptSocket, FIONBIO, (char *)&flag);
          if (rc < 0)
          {
                     printf("\n ioctl() failed \n");
             return 0;
          }*/

          //Bind the socket
     memset(&addr, 0, sizeof(addr));

     addr.sin_family=AF_INET;

     addr.sin_port=htons(port);

     addr.sin_addr.s_addr=htonl(INADDR_ANY);

     rc=bind(acceptSocket,(struct sockaddr*)&addr,sizeof(addr));

     if(rc== -1)

     {

       printf("Failure: listen, failure code:\n");

       return 1;

     }

     else

     {

       printf("Socket an port %d \n",port);

     }


     if(acceptSocket == -1)
     {
         printf("Fehler: accept, fehler code:\n");

          return 1;
     }
     else
     {

     while(rc!=-1)
         {


         rc=recvfrom(acceptSocket,buf, 256, 0, (struct sockaddr*) &client, &len);
         if(rc==0)
         {
           printf("Server has no connection..\n");
           break;
         }
         if(rc==-1)
         {
             printf("something went wrong with data %s", strerror(errno));
           break;
         }


         XcpIp_RxCallback( (uint16) rc, (uint8*) buf, (uint16) port );
         callBackTimers();

          }


     }

       close(acceptSocket);



       return 0;

     }






int main()
{

     Xcp_Initialize();
     CreateSocket();
     return 1;

}