日期:2014-05-16  浏览次数:20765 次

菜鸟急问,我的recv()为什么只能接收1448个字符?
为什么我的recv()为什么只能接收1448个字符?

------解决方案--------------------
自己写一个函数readn 不就行了?
int readn(int fd, void *vptr, size_t n)
{
size_t nleft;
ssize_t nread;
char *ptr;
 
ptr = (char *)vptr;
nleft = n;
while (nleft > 0) {
if ( (nread = read(fd, ptr, nleft)) < 0) {
if (errno == EINTR)
nread = 0;
else
return(-1);
} else if (nread == 0)
break;


nleft -= nread;
ptr += nread;
}
return(n - nleft);
}