Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2023, 16:23   #1
stakan1
 
Регистрация: 16.12.2016
Сообщений: 6
По умолчанию Обмен по UDP не работает без Shark

У меня STM32 + W5500 с одной стороны (сервер), комп с Windows7 - с другой (клиент).
Задача - установить соединение по UDP и по команде с компьютера слать на большой скорости udp-пакеты с STM32 в компьютер.

Запрограммировал оба устройства. При программировании клиента использовал Borland6 + компонент Indi.

Все давно работает как надо, но... Только при включенном Shark'е!

То есть включаю свою клиентскую программу, нажимаю свою кнопку СТАРТ (то есть отправляю пакет с командой start на STM32) и вижу, что пакеты не приходят, хотя STM команду получил и пакеты отправляет. То есть не срабатывает OnUDPRead в Indi.

Включаю Shark. Пакеты начинают приходить, все работает!

Вот в каком направлении копать? Я уже неделю голову ломаю.

Пробовал использовать разные порты для передачи и приема - та же картина. Все работает, но, как только останавливаю Shark, OnUDPRead перестает работать.

Последний раз редактировалось stakan1; 23.01.2023 в 17:24.
stakan1 вне форума Ответить с цитированием
Старый 24.01.2023, 16:01   #2
stakan1
 
Регистрация: 16.12.2016
Сообщений: 6
По умолчанию

Посмотрел сегодня и вижу, что проблема сводится к следующему.

UDP-пакеты, которые идут от STM32, не содержат MAC-адреса получателя. Проверял на STM32 со встроенным модулем Ethernet: там есть MAC-адрес => пакеты доходят без включенного Shark'а. А если MAC-адреса нет, то Shark по IP получателя, видимо, добавляет MAC и все OK.

MAC-адреса нет потому, что STM32 не делает ARP-запрос. То есть надо его сделать принудительно и все само заработает, да? Пробовал поставить 1-цу в FARP - не вижу ARP-запроса...

Последний раз редактировалось stakan1; 24.01.2023 в 16:34.
stakan1 вне форума Ответить с цитированием
Старый 25.01.2023, 12:28   #3
stakan1
 
Регистрация: 16.12.2016
Сообщений: 6
По умолчанию

В общем, сделал так.

Прописываю MAC-адрес получателя в DHAR и использую SEND_MAC - все заработало.

Если использовать SEND, то ARP-запросы идут, но MAC-адрес из ответа куда-то девается - неохота с этим разбираться, т.к. там еще всякие проблемы возникают.
stakan1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание бота для приложения вконтакте ''Poker Shark" Jaguarxxx Работа с сетью в Delphi 3 28.12.2011 17:18
Обмен по RS-422 Leeder Общие вопросы C/C++ 1 04.10.2010 11:28
Обмен ICQ Умелец Свободное общение 3 15.09.2007 12:03