Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
11 / 11 / 2
Регистрация: 22.02.2012
Сообщений: 115

Принять данные с IP-камеры по UDP

13.07.2015, 15:18. Показов 5418. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!
Есть ip камера работающая по UDP, она получая определенную команду начинает в бинарном виде валить данные. Написал такой код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  public void getJpg()
        {
 
            ipcam_command_t camcmd = new ipcam_command_t();
            //Инициализируем массив
            camcmd.param = new int[15];
 
            ipcam_packet_t buffer = new ipcam_packet_t();
            buffer.reserved = new int[3];
            buffer.data = new byte[CAPTURE_BUFFER_SIZE];
 
            camcmd.cmd = IPCAM_CMD_START;   // Формируем команду
            camcmd.flags = 0;
 
            // Создаем UdpClient
            UdpClient sender = new UdpClient();
            // Создаем endPoint по информации об удаленном хосте
            IPEndPoint endPoint = new IPEndPoint(remoteIPAddress, Port);
            try
            {
                // Отправляем данные полученные как массив байт
                byte[] bytes = camcmd.GetBytes();
                sender.Send(bytes, bytes.Length, endPoint);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Возникло исключение: " + ex.ToString() + "\n  " + ex.Message);
            }
            finally
            {
                // закрыть соединение
                sender.Close();
            }
}
Команда приходит успешно, и камера начинает отвечать ( смотрю с помощью wireshark )

Читать пытаюсь вот таким образом, в отдельном потоке:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
        public static void Receiver()
        {
            // Создаем UdpClient для чтения входящих данных
            UdpClient receivingUdpClient = new UdpClient(Port);
            IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Parse("192.168.2.55"), Port);
            //IPEndPoint RemoteIpEndPoint = null;
 
            //receivingUdpClient.Connect(IPAddress.Parse("192.168.2.55"), Port);
 
            try
            {
                while (true)
                {
                    // Ожидание дейтаграммы
                    byte[] receiveBytes = receivingUdpClient.Receive( ref RemoteIpEndPoint );
 
                    // Преобразуем и отображаем данные
                    string returnData = Encoding.UTF8.GetString(receiveBytes);
                    Console.WriteLine(" --> " + returnData.ToString());
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Возникло исключение: " + ex.ToString() + "\n  " + ex.Message);
            }
        }
Но не приходит никаких данных!
Самое интересное, когда я с помощью другой программы пишу на этот порт по ip 127.0.0.1 - данные отображаются, подскажите , что я не правильно делаю?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.07.2015, 15:18
Ответы с готовыми решениями:

Принять данные через UDP протокол
Два дня смотрел что к чему в интернете, но так и понял что к чему. А может и понял, но роутерне пропускает пакеты, хотя вроде порт...

Принять данные с udp
Вот отправил данные по udp протоколу, а как получить ответ я незнаю! Dim endPoint As New IPEndPoint(IPAddress.Parse(TextBox1.Text),...

Отправить/принять пакет UDP
Требуется решить такую задачу: Создать приложение Win32 с оконным интерфейсом. По нажатию кнопки приложение отправляет пакет UDP...

20
11 / 11 / 2
Регистрация: 22.02.2012
Сообщений: 115
14.07.2015, 13:50  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от sashatref Посмотреть сообщение
в конструкторе инициализировали один экземпляр Udp и сразу его потеряли
О только дошло до меня, сейчас попробую, отпишусь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.07.2015, 13:50

svchost пытается принять UDP соединение
Здравствуйте! firewall показал, что процесс svchost.exe пытается принять UDP соединение с адреса 178.187.161.198, порт 6881....

Принять по UDP multicast медиа-поток MPEG2-TS
Прочитал про сокеты и как подключиться к multicast group. #include <iostream> #include <stdio.h> #include <stdlib.h> ...

Принять и отправить данные
Есть абстрактный сайт, владелец не я то есть выступаю в качестве простого пользователя. На сайте обновляеются данные в реальном времени...

Как принять и вывести данные?
Добрый день. я чет туплю получаю масив данных как мне вывести значения / Array ( => stdClass Object ( => 0 => 391 ) =>...

Как принять данные от пользователя
как принять данные от пользователя в программе? например как это было не для билдера: cin >> a;


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru