CSocket发送空包还是接送了空包? 怎么办?!?!

在MFC里定义了CSocket

AfxSocketInit();
    CSocket aSocket;

    CString strIP="127.0.0.1";
    int nPort = 6000;

    if(!aSocket.Create())
    {
        MessageBox("error");
        return;
    }

    if(aSocket.Connect(strIP, nPort))
    {
        char recvBuf[20] = {'\0'};

………………
会有这样发送点东西。。aSocket.Send(NAME, sizeof(NAME));
也会这样接收东西。。 aSocket.Receive(recvBuf, sizeof(recvBuf));
大概这样。。
然后收发会出现很多很多空数据 就是recvBuf=“ ”这样。。还会丢数据收不到!!
听说CSocket是非阻塞式的?这个造成的吗?
有什么方法解决吗?