为啥经常看到socket的recv函数一个一个字节的接收数据

为什么经常看到socket的recv函数一个一个字节的接收数据一起收不行吗? 我经常看到这种代码char recvBuffer

为什么经常看到socket的recv函数一个一个字节的接收数据
一起收不行吗? 我经常看到这种代码
     char recvBuffer[1024];
     char ch;
    int i=0;
     while(1)
{
int nLen = recv(sock,&ch,1,0);
if(nLen <= 0){
                    closesocket(sock);
    break;                 
                }
                recvBuffer[i++] = ch;
}

    为什么不直接写成
      recv(sock,recvBuffer,1024,0);
     closesocket(sock);
    我直接指定收1024个字节, 即使是对方只发送一两个字节,它也会智能的断掉连接的啊?
[解决办法]
缓冲区的大小要合适,太小太大都不好,一个字节一个字节的真没见过