14 / 14 / 4
Регистрация: 27.07.2011
Сообщений: 162
1

Клиент-сервер: При передаче одного кадра все хорошо, но при отсылке потоком возникает ряд ошибок

27.06.2014, 02:55. Показов 911. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, коллеги. Пишу клиент-серверное приложение для передачи потокового видео. Сервер на linux, клиент на win. Данные с камеры выхватываются посредством callback, затем должны передаваться клиенту, он в свою очередь должен принимать поток и выводить на форму. Задача простая вроде бы, но наткнулся на ряд проблем. При передаче одного кадра все хорошо, но при отсылке потоком возникает ряд ошибок. Я думаю, что это из-за неправильной реализации клиента/сервера.

сервер работает по следующей схеме:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
          while(1)
     {
                 //захват кадра
         Camera.grab();
         Camera.retrieve(data, raspicam::RASPICAM_FORMAT_YUV420);
         cnt = 0;
                 //клиент готов принять новый кадр
                 read(newsockfd2, str, 1);
                 if(str[0] == '2')
                 {
             while (cnt < Size)
             {
             bzero(str, 2);
             write(newsockfd1, &data[cnt], size);
                         //клиент принят какую-то часть информации
             read(newsockfd2, str, 1);
             if (str[0] == '1')
             {
                 cnt += size;
             }
             }
                 }
     }
Буду рад любым наводкам и советам. Спасибо.

Добавлено через 6 часов 30 минут
Вопрос был весьма глупым, все решилось просто.

C++
1
2
3
4
5
6
7
8
9
while (1)
     {
         Camera.grab();
         //extract the image in rgb format
         Camera.retrieve(data, raspicam::RASPICAM_FORMAT_YUV420);//get camera image     
         while (cnt < size)
            cnt = write(newsockfd1, &data[cnt], size - cnt);
         cnt = 0;
     }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2014, 02:55
Ответы с готовыми решениями:

При создании нового класса возникает ряд ошибок
Помогите разобраться, на что ругается студия? пустой проект создал по примеру...

Потеря пакетов при передаче клиент->сервер - Boost C++
Написал простенькую реализацию сервера и клиента. Клиент: #include &quot;stdafx.h&quot; #include...

Влияние ошибок при передаче по интерфейсу на вероятность возникновения ошибок C4, C5 и 05
Приветствую ! Интересует такой вопрос: Может ли в теории наличие неисправностей...

При передаче строки в функцию возникает string subscript out of range
Нужно было реализовать алгоритм сортировочной станции в обратную польскую нотацию с последующим...

5
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
29.06.2014, 02:41 2
Привет, хотел у тебя спросить как ты выхватываешь видео с камеры?(при помощи какой библиотеки/API)
0
14 / 14 / 4
Регистрация: 27.07.2011
Сообщений: 162
29.06.2014, 21:05  [ТС] 3
Bend3r, использую RPi совместно с raspicam. Для последней есть raspicam API. Если интересно, могу дать ссылку.
0
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
29.06.2014, 22:04 4
Давайте, заранее спасибо!
0
14 / 14 / 4
Регистрация: 27.07.2011
Сообщений: 162
29.06.2014, 22:10  [ТС] 5
Bend3r,
основные библиотеки для RPi:
https://github.com/raspberrypi... rface/mmal

RpiCAM API:
http://www.uco.es/investiga/grupos/ava/node/40

OpenCV для RPi:
http://blog.cedric.ws/install-... spberry-pi

Инструкции по установке прилагаются везде. Сначала лучше скомпилить OpenCV и userland, а затем уже либы для камеры. OpenCV компилится порядка 7-8 часов, остальное быстрее.
0
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
29.06.2014, 23:47 6
Спасибо, буду разбираться!
0
29.06.2014, 23:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2014, 23:47
Помогаю со студенческими работами здесь

Ошибка при передаче данных в клиент-серверном приложении
Здравствуйте, вот код клиент-серверного приложения: Клиент: private void button1_Click(object...

Шифрование данных при передаче на сервер
Есть задача передать данные на сервер. Получать и отправлять данные будет экзешник, а принимать и...

Progressbar при передаче файла на сервер
Добрый день! Имею код для отправки файла на сервер public String sendPhoto(File file){ ...

Как шифровать данные при передаче на сервер?
Немного запутался в шифровании,подскажите как будет правильнее шифровать 1)Есть клиент на андроиде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru