我使用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。