首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >select()不使用为timeval设置的内容

select()不使用为timeval设置的内容
EN

Stack Overflow用户
提问于 2014-03-18 04:51:43
回答 1查看 4.1K关注 0票数 0

下面有一个片段--我已经用几种方式调整了我的tv_usec,但是我在select()循环中一直坐着几乎整整10秒,不管tv_usec设置在什么位置。

代码语言:javascript
复制
    char buffer[512];
    fd_set readfds;
    struct timeval tv;
    tv.tv_usec = 50;    

    int rv = 1;

    // clear the set ahead of time
    FD_ZERO(&readfds);

    // add our descriptors to the set
    FD_SET(mySocket, &readfds);

    // the n param for select()
    int n = mySocket + 1;

    while(rv != 0)
    {
        rv = select(n, &readfds, NULL, NULL, &tv);

        if (rv == -1)
            perror("select"); // error occurred in select()

        bzero(buffer,512);
        int n = recvfrom(mySocket,buffer,512,0,(struct sockaddr *)&server, &sockLen);

        // do stuff...
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-18 04:53:51

需要将tv.tv_sec初始化为某些内容。设置tv.tv_sec = 0解决了这个问题。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22470658

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档