在select()返回1

时间:2017-11-17 15:06:33

标签: c linux sockets

我使用select()来支持HTTP服务器的keep alive属性。但是FD_ISSET()select()返回1后返回false。当我尝试在浏览器中加载一个页面时,它会发生。当我关闭它并打开新页面时,一切正常。

以下是函数中的代码片段,它读取请求并发送响应:

do {

    tv.tv_sec = TIMEOUT_SECS;
    tv.tv_usec = 0;
    FD_ZERO(&readfds);
    FD_SET(arg->sock, &readfds);
    result = select(arg->sock + 1, &readfds, NULL, NULL, &tv);
    printf("SELECT RESULT: %d\n", result);
    //read input data
    if(result > 0) {

        if(FD_ISSET(arg->sock, &readfds)) {
            bytes_read = read(arg->sock, buf, 

FD_ISSET()返回false。

0 个答案:

没有答案