>> const int MAX_BUF_SIZE = 2073600;
Для такого принято использовать size_t
>>unsigned char *buf = new unsigned char[MAX_BUF_SIZE]; // Буфер для прима сообщений
>>vector videoBuffer;
Почему тогда для buf не использовать vector?
>> iResult = recv(connectSocket, (char *)&buf[0], MAX_BUF_SIZE, 0);
>> if (iResult > 0) {
откуда уверенность, что в буфере достаточно данных для декодирования?
>> // Если пришли данные изображения, копируем их
>> videoBuffer.resize(iResult);
>> memcpy((char*)(&videoBuffer[0]), buf, iResult);
>> // Декодируем данные
>> jpegimage = imdecode(Mat(videoBuffer), CV_LOAD_IMAGE_COLOR);
Зачем лишний раз копировать данные?
Для такого принято использовать size_t
>>unsigned char *buf = new unsigned char[MAX_BUF_SIZE]; // Буфер для прима сообщений
>>vector videoBuffer;
Почему тогда для buf не использовать vector?
>> iResult = recv(connectSocket, (char *)&buf[0], MAX_BUF_SIZE, 0);
>> if (iResult > 0) {
откуда уверенность, что в буфере достаточно данных для декодирования?
>> // Если пришли данные изображения, копируем их
>> videoBuffer.resize(iResult);
>> memcpy((char*)(&videoBuffer[0]), buf, iResult);
>> // Декодируем данные
>> jpegimage = imdecode(Mat(videoBuffer), CV_LOAD_IMAGE_COLOR);
Зачем лишний раз копировать данные?
Печально видеть такое в хабе C++