Есть два приложения(сервер и клиент). Сервер отправляет imageData через udp socket. Клиент, в свою очередь, принимает imageData вставляет в Iplimage и отображает.
Часть кода сервера.
IplImage *small уже заполнен данными.
char *buff;
buff=small->imageData;
int result = sendto(SendSocket,
buff, strlen(buff), 0, (SOCKADDR *) & RecvAddr, sizeof (RecvAddr));
Часть кода клиента.
int UDPMAX = 65507;
cvNamedWindow("Client", CV_WINDOW_AUTOSIZE);
char *buff = (char*)malloc(UDPMAX);
int result = recvfrom(RecvSocket,
buff, strlen(buff), 0, (SOCKADDR *) & SenderAddr, &SenderAddrSize);
IplImage *small = cvCreateImage(cvSize(683,384), IPL_DEPTH_8U, 3);
buff[result]='\0';//обрезаю buff
small->imageData=buff;
cvShowImage("Client", small );
На клиент данные приходят(чексуммы совпадают), но при вызове cvShowImage вылетает ошибка. Во время дебага просмотрел buff клиента и buff сервера с помощью TextVisualizer и заметил, что они в некоторых местах отличаются(допустим "ЁўўўРРРЦЦЦ»»»" заменяются на "ЁўўўРРРЦЦЦііі¶¶¶").