crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Обмен данными между сервером и клиентом.
call_me_Frank
  опции профиля:
сообщение 20.10.2010, 14:18
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 73
Регистрация: 20.10.2010
Пользователь №: 2129

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте, товарищи знатоки!...прошу помочь с написанием программы, суть которой заключается в следующем: есть локальная сеть, допустим один комп сервер и 5 клиентов; необходимо, что бы сервер посылал некоторый сигнал по таймеру всем клиентам, который по сути - синхроимпульс; по этому импульсу все клиенты собирают у себя некоторые данные и отправляют их обратно на сервер, и после этого все повторяется.

я читал примеры работы с сетью в Qt, читал про сокеты и сервера, но пока не смог понять, что нужно и что лучше использовать для такой организации работы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 20.10.2010, 17:52
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


call_me_Frank, если постоянное соединение не требуется, то UDP - обмен подойдёт :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
call_me_Frank
  опции профиля:
сообщение 20.10.2010, 18:13
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 73
Регистрация: 20.10.2010
Пользователь №: 2129

Спасибо сказали: 0 раз(а)




Репутация:   0  


ага, как раз об этом выборе речь и идет!...скажем так, насколько можно рассчитывать на UDP? а то, как я читал, по его определению - пакеты летают хаотично, а могут и вообще потеряться)
и еще насчет постоянного соединения: нужно ли оно мне?...например, что выйдет "дешевле" - поддерживать постоянные соединения с клиентами или устанавливать его в необходимый момент передачи? как мне кажется, это должно зависеть от загрузки канала и от частоты таких включений, верно?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 20.10.2010, 18:18
Сообщение #4


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


call_me_Frank, точно синхронизировать по узкому каналу не получится. Разве только по точным часам, синхронизированным по GPS
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
call_me_Frank
  опции профиля:
сообщение 20.10.2010, 19:11
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 73
Регистрация: 20.10.2010
Пользователь №: 2129

Спасибо сказали: 0 раз(а)




Репутация:   0  


ладно, тему можно считать закрытой, потому что благодаря ответам и другим размышлениям пришел к выводу, что система требует совсем другой организации :rolleyes:

спасибо за твои быстрые советы ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 20.10.2010, 19:17
Сообщение #6


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(call_me_Frank @ 20.10.2010, 22:11) *
что система требует совсем другой организации

так расскажи, если не секрет :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
call_me_Frank
  опции профиля:
сообщение 20.10.2010, 20:40
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 73
Регистрация: 20.10.2010
Пользователь №: 2129

Спасибо сказали: 0 раз(а)




Репутация:   0  


Отчего ж не рассказать) изначально планировал сделать систему сбора данных с внешних аппаратных устр-в, подключенных к разным компам связанным по сети. Однако, для того, что б система обладала некоторой гибкостью и возможностью надстройки, хотел сделать её модульной, с единым сервером с БД, где все данные будут сохр., а потом изыматься оттуда для отправки в программы отображения данных на этих же машинах.

пришел к такому варианту реализации: каждая программа (или программная часть, собирающая данные) при получении очередной порции данных (по своим временным сигналам, а не тому единому от сервера, как было изначально обозначено в сабже) отправляет их на сервер; тот, по уже известной ему конфигурации запущенных программ отображения (он "знает", какая на какой машине запущена/не запущена и какие именно данные ей нужны), отправляет только что полученные данные адресату для их отображения!)) от такая задумка
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 20.10.2010, 20:56
Сообщение #8


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


у нас используется такая организация системы СКУД:

КОМП-СЕРВЕР(на нём БД и программа-сервер. С БД работает только эта программа и только локально на этом компе)
все железяки шлют сообщения сразу серверу, сервер пишет данные в базу.

далее, хвостом существует админка и рабочие места, которые цепляются опять-таки к программе-серверу. Рабочие места периодически опрашивают сервер на наличие новых данных, а также шлют сами, если надо. Возможен вариант извещения рабочих мест сервером о событиях.

админка позволяет через посредство программы-сервера менять настройки системы и базы.

Сообщение отредактировал Алексей1153 - 20.10.2010, 20:57
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
call_me_Frank
  опции профиля:
сообщение 20.10.2010, 21:07
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 73
Регистрация: 20.10.2010
Пользователь №: 2129

Спасибо сказали: 0 раз(а)




Репутация:   0  


"КОМП-СЕРВЕР(на нём БД и программа-сервер. С БД работает только эта программа и только локально на этом компе)
все железяки шлют сообщения сразу серверу, сервер пишет данные в базу.
далее, хвостом существует админка и рабочие места, которые цепляются опять-таки к программе-серверу. Рабочие места периодически опрашивают сервер на наличие новых данных, а также шлют сами, если надо. Возможен вариант извещения рабочих мест сервером о событиях." - ну, собственно, почти к этому я и пришел)) только, думаю, сервер сам будет посылать данные на рабочие места, ведь опрос сервера - это трата времени, нет?

"админка позволяет через посредство программы-сервера менять настройки системы и базы." - у меня была идея сделать некую прогу-конфигуратор, которая будет напоминать Visio-программы, где конфигурация системы выстраивается диаграммами и заданием настроек. Думаю, это вполне возможно и достаточно удобно!

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 20.10.2010, 23:43
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(call_me_Frank @ 20.10.2010, 17:18) *
что бы сервер посылал некоторый сигнал по таймеру всем клиентам, который по сути - синхроимпульс
я делал так:
В каждом узле есть свои часы.
В системе есть широковещательная команда - установка времени.

Ведущее устройство посылает установку времени,
периодически на каждом узле просматривается время и ведётся табличка корректирующая (на ведущем устройстве).
Если время расходится сильно, то ведущий опять посылает широковещательную установку времени.

Все события регистрируются узлами самостоятельно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 12.12.2024, 14:52