PDA

Просмотр полной версии : udp broadcast не работает?



dbkrasn
03.03.2012, 12:52
Добрый день

ПЛК 100 в сети имеет адрес 192.168.1.50

На нем крутится такая простая программка


IF sock_rx = -1 THEN
sock_rx := UdpOpenReceiveSocket(3639);
ELSE
data_len := UdpGetReceiveDataSize(sock_rx);
IF data_len <>0 THEN
data_len := 0;
END_IF
END_IF


Если я с сервера посылаю udp broadcast по адресу 192.168.1.255, ПЛК его не ловит, хотя остальные компы в сети это сообщение принимают.

Если я посылаю broadcast на адрес 192.168.1.50, ПЛК его естественно ловит.

Может быть я что-то делаю не так?

Gans
09.03.2012, 10:54
Добрый день

ПЛК 100 в сети имеет адрес 192.168.1.50

На нем крутится такая простая программка


IF sock_rx = -1 THEN
sock_rx := UdpOpenReceiveSocket(3639);
ELSE
data_len := UdpGetReceiveDataSize(sock_rx);
IF data_len <>0 THEN
data_len := 0;
END_IF
END_IF


Если я с сервера посылаю udp broadcast по адресу 192.168.1.255, ПЛК его не ловит, хотя остальные компы в сети это сообщение принимают.

Если я посылаю broadcast на адрес 192.168.1.50, ПЛК его естественно ловит.

Может быть я что-то делаю не так?
Здравствуйте dbkrasn
Описанное Вами проблема очень похоже на разные маски отправителя и получателя :)

dbkrasn
10.03.2012, 09:00
маски всех устройств в сети (не исключая ПЛК) 255.255.255.0

Gans
10.03.2012, 09:49
Здравствуйте dbkrasn
Функции UdpOpenReceiveSocket и UdpGetReceiveDataSize рукодельные?

маски всех устройств в сети (не исключая ПЛК) 255.255.255.0
Подскажите, а компьютеры в сети получают IP адрес динамически? или IP-статические?
Жаль, что типовая ошибка - это не Ваш случай. Тогда придется ждать ответа от умных людей.

Филоненко Владислав
10.03.2012, 12:46
ЕМНИП, работает только 255.255.255.255
стек маленько кастрированный