阻塞socket的recv,有没有办法退出循环
服务端:
fcmd = popen("./test","r"); if(fcmd == 0) { bail("popen() failed"); close(detect_sock); return false; } memset(databuf, 0, PIPE_BUF - 1); int bytes = 0; while((bytes = read(fileno(fcmd), databuf, PIPE_BUF)) > 0) { replace(databuf, "\n", "\r\n", PIPE_BUF-1); write(detect_sock, databuf, strlen(databuf)); memset(databuf, 0, PIPE_BUF - 1); } memset(databuf, 0, PIPE_BUF - 1); if(pclose(fcmd) != 0) { printf("Non-zero return value from DIY command,error no is %d\r\n",errno); } close(detect_sock); while ((bytes = recv(detect_sock, databuf, sizeof(databuf),0) > 0)) { memset(databuf,0,sizeof(databuf)); bytesread += bytes; } closesocket(detect_sock);