菜鸟急问,我的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);
}