在C中同时读取命令行和recvfrom

时间:2019-04-21 21:58:30

标签: c command-line udp

为了建立UDP聊天,我需要发送一条消息,同时接收消息。目前,我正在尝试接收消息并阅读命令行,打印消息。而且,我想每10秒调用一次函数func()

这是我尝试过的:

  fd_set readfds;
  struct timeval timeout;
  char buf[100];

  while(1){
    FD_ZERO(&readfds);
    FD_SET(sock_fd,&readfds);

    timeout.tv_sec = 10;
    timeout.tv_usec = 0;

    if(select(sock_fd +1, &readfds,NULL,NULL,&timeout) != 0){
        receiveMessages(sock_fd);
        memset((void*)buf,0,100);
        if(read(sock_fd,(void*)buf,100)!=-1){
          printf("Message : %s\n", buf );
        }
    }else{
        func();
    }
 }

receiveMessages()函数中,仅调用一个函数:recvfrom()

函数receiveMessages(sock_fd)func()每10秒被正确调用一次,但是从不读取命令行,因此从不打印消息。我错过了什么 ?

0 个答案:

没有答案