这个代码是否会在收到FIN背驮式FIN的情况下工作?
while(1) {
rc = recv(sock,buf,sizeof(buf),MSG_WAITALL);
if (rc > 0)
{
/* Code to process recv buf */
}
else if (rc == 0)
{
/* received FIN ?? */
close(sock);
break;
}
else /* rc < 0 */
{
/* Handle error */
break;
}
}
想知道它是否有用以及您可能有的其他建议。
答案 0 :(得分:0)
如果有数据,rc
将为正数,您的第一个if
块将会执行。如果下次没有任何内容,只有FIN,rc
将为零,第二个块将执行。