查询 piggybacked FIN & 接收
Query about piggybacked FIN & recieve
如果收到搭载的 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;
}
}
想知道它是否有效以及您可能有的任何替代建议。
如果有数据,rc
将为正,您的第一个 if
块将执行。如果下次除了 FIN 什么都没有了,rc
将为零,你的第二个块将执行。
如果收到搭载的 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;
}
}
想知道它是否有效以及您可能有的任何替代建议。
如果有数据,rc
将为正,您的第一个 if
块将执行。如果下次除了 FIN 什么都没有了,rc
将为零,你的第二个块将执行。