私はソケット プログラムを実行しており、サーバーがデバイスに接続された後、彼にメッセージを送信しようとしています。しかし、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 !!");
}
}
なぜこれが起こっているのか知っている人はいますか??