recv读取套接字返回值问题
我用的是非阻塞模式读取套接字内容,sz 为要读取的字节数,有的时候能够正常输出结果,但是有时候结果却输出:r_len > 0 r_len = -1,这是为什么啊?从没遇见过!请求高手指点一下!
while(sz != 0)
{
r_len = recv(s_fd, p1, sz, 0);
if (r_len < 0)
{
if ((errno == EINTR) || (errno == EWOULDBLOCK))
{
sleep(1);
continue;
}
xlog_error(__FILE__,__LINE__,"recv(): %s !", strerror(errno));
close(s_fd);
s_fd = -1;
goto connect;
}
if (r_len == 0)
{
printf("The server is close socket !");
break;
}
if (r_len > 0)
{
printf("r_len > 0 r_len = %d\n", r_len);
sz -= r_len;
p1 += r_len;
}
}