Функция send () возвращает больше байтов, чем требовалось c ++

Я делаю программу для сокетов и после того, как мой сервер подключен к устройству, я пытаюсь отправить ему сообщение. Но функция send () возвращает количество байтов, превышающее количество байтов, хранящихся в моем массиве. И сообщение не отправляется.

Вот мой код:

StartSendingMessages()
{
    int retorno;
    CString TextRetorno;

    HEX_bufferMessage = new CHAR[7]; // there are seven bytes

    // specifies the state
    HEX_bufferMessage[0] = 0xF0;
    HEX_bufferMessage[1] = 0x15;
    HEX_bufferMessage[2] = 0x31;
    HEX_bufferMessage[3] = 0x04;
    HEX_bufferMessage[4] = 0x02; // green
    HEX_bufferMessage[5] = 0x0E; // C1
    HEX_bufferMessage[6] = 0xF7;

    retorno = send(sckSloMo, HEX_bufferMessage, sizeof(HEX_bufferMessage), 0); 

    TextRetorno.Format("%d", retorno); // retorno = 8
    AfxMessageBox("Bytes enviados: " + TextRetorno);

    if (retorno == SOCKET_ERROR)
    {
        AfxMessageBox("Error Send!!");
        return;
    }
    else if(retorno != 0)
    {
        AfxMessageBox("Send() OK !!");
    }
}

Кто-нибудь знает, почему это происходит ??

Ответы на вопрос(4)

Ваш ответ на вопрос