Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: передача данных без соединения  (Прочитано 14265 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« : 20-11-2006 18:03 » 

передача данных без соединения

стоит такая задача:
имеется одна программа (П1) , в которой, неважно откуда зарождаются ДАННЫЕ ))) . Имеется также вторая программа (П2) , которая так же может пользоваться этими данными.
П1 и П2 , в общем случае, выполняются на разных машинах. П1 знает адрес компьютера (К2) , где работает П2 (адрес - IP и port).

П1 работает всегда. П2 может работать или нет - по своему желанию.
П1 всегда скидывает данные на К2 , причём никогда не знает, работает ли в это время П2.
Если П2 работает, то она принимает данные и что-то там с ними делает.
Если П2 не работает, данные просто теряются.
----
1) возможно ли по TCP/IP передавать данные на  известный адрес, не устанавливая соединения ?

2) или, если кто делал, как можно реализовать всё это ?



заранее пасиба )
« Последнее редактирование: 20-11-2006 18:05 от Алексей1153 » Записан

Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 20-11-2006 18:50 » 

Можно конечно передавать данные по UDP протоколу. Протокол не требует установление соединения и не требует подтверждения получения данных. Так что твоя программа П1 может все время посылать данные. Вторая при включении ставит порт на прослушивание.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #2 : 20-11-2006 19:50 » 

такс, щас  в асю приду )
Записан

Diletant
Помогающий

de
Offline Offline

« Ответ #3 : 21-11-2006 10:25 » 

передача данных без соединения

----
1) возможно ли по TCP/IP передавать данные на  известный адрес, не устанавливая соединения ?


В ТСР нельзя по определению, он работает только через соединение. Только UDP.

2) или, если кто делал, как можно реализовать всё это ?

Есть такая функция WSASendTo() ...


Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #4 : 21-11-2006 10:48 » 

Diletant, Имя TCP/IP это название целого семейства протоколов. В том числе и UDP входит в это семейство.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 21-11-2006 12:42 » 

Используй именнованный канал или почтовые ящики.  Да-да
Записан
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 21-11-2006 12:43 » 

Забыл добавить, машины должны быть объеденены в сетку для этого.
Записан
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 21-11-2006 12:47 » 

П1 работает всегда. П2 может работать или нет - по своему желанию.
П1 всегда скидывает данные на К2 , причём никогда не знает, работает ли в это время П2.
Если П2 работает, то она принимает данные и что-то там с ними делает.
Если П2 не работает, данные просто теряются.
Вот для этого почтовые ящики самое то. Только данные будут кидаться не на К2, а вообще будут разлетаться по сетке. И их могут принимать все проги в сети, если они будут слушать данный ящик.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 21-11-2006 18:48 » 

Serg79, не, это не пойдёт. По совету Финча удачно опробовал UPD , но там вроде как гарантии достаффки нет, поэтому всё же решено соединение устанавливать , П1 - клиент , П2 - сервер
Записан

RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 21-11-2006 21:58 » new

Алексей1153, если ты работаешь в локальной сети, машины не имеют обыкновения жестко тормозить и трафик ты большой создавать не собираешься, то считай, что UDP надежен на 99.99%.
TCP проигрывает UDP только во времени готовности к передаче (из-за установления соединения в самом начале - всего 2+1 маленьких пакета) и в увеличении задержек в случае пропадания пакетов.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 22-11-2006 05:00 » 

Serg79, не, это не пойдёт. По совету Финча удачно опробовал UPD , но там вроде как гарантии достаффки нет, поэтому всё же решено соединение устанавливать , П1 - клиент , П2 - сервер
Улыбаюсь Почтовые ящики посылают свои данные датаграмами (используя UPD), по этому присутствует ограничение на разовую запись в MailSlot. По этойже пречине можно просто открывать ящик не задумываясь открыт ли он еще гдето, и слушать его или писать в него.

На мой взгляд, MailSlot самый простой способ организации обмена данных между процесами на разных машинах.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 22-11-2006 07:27 » 

Serg79, это все прекрасно будет работать в варианте с broadcast или multicast UDP. Конечно, если возможно несколько слушателей - иначе достаточно unicast UDP или TCP.
Главное - стандартные протоколы - нет зависимости от совместимости протоколов MS от версии к версии.
« Последнее редактирование: 22-11-2006 07:28 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #12 : 22-11-2006 18:02 » 

RXL, Ром, я подумаю, возможно опционально сделаю выбор между способами ) Слишком много где будет применяться, условия не известны заранее ваще
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines