powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Широковещалка на TCPServer
25 сообщений из 28, страница 1 из 2
Широковещалка на TCPServer
    #33539022
Фотография webus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
Такая проблема! Пишу клиент-серверное приложение с использованием MySQL. На серваке стоит MySQL.На жругих компах написаны клиенты.Так же на серваке болтаеться простенькая программа-сервер с использованием компонента idTCPServer. Когда с какого либо клиента посылаеться сообщение на TCPServer, надо чтобы он всем другим активным клиентам его переслал. Одним словом это сделано для того, чтобы когда один клиент внес изменения в БД все остальные без проблем бы обновились. Как заставить TCPServer отвечать не тому клиенту, что сообщение послал, а всем активным в данный момент ?
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33539293
SnowMan2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для широковешательных сообшений следует использовать протокол UDP.
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33539297
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО ненадежно. Лучше сделать это средствами БД.
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33539305
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИМХО ненадежно. Лучше сделать это средствами БД.
присоединяюсь!

кстати, широковещать вполне может сам клиент, который что-то изменил. сервер для этого совершенно не нужен.
во-вторых, при таком методе оповещения будут проблемы, если будет запущено два клиентских приложения на одном компе - они не смогут оба открыть для прослушивания один и тот же порт.
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33539854
Фотография webus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо все что откликнулись! Интересует тема на счет широковещательных udp-сообщений! Раскажите что да как!? А на счет запуске двух приложений на одном компе, это можно запретить программно в той же софтине....
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33540118
_Балтика
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft maytonИМХО ненадежно. Лучше сделать это средствами БД.
присоединяюсь!

кстати, широковещать вполне может сам клиент, который что-то изменил. сервер для этого совершенно не нужен.
во-вторых, при таком методе оповещения будут проблемы, если будет запущено два клиентских приложения на одном компе - они не смогут оба открыть для прослушивания один и тот же порт.Клиент конечно широковещать может, но где гаранти что в базе не сработало какое-нибудь правило или триггер и никаких изменений не произошло?
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33540227
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_БалтикаКлиент конечно широковещать может, но где гаранти что в базе не сработало какое-нибудь правило или триггер и никаких изменений не произошло?
Так на сервере он же не из триггера, полагаю, широковещать собрался...
Наверное, будет какое-то клиентское приложение, которое что-то там будет отслеживать...а если так, то функционал этого приложенения вполне можно втащить в основное клиентское приложение.
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33540248
_Балтика
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft _БалтикаКлиент конечно широковещать может, но где гаранти что в базе не сработало какое-нибудь правило или триггер и никаких изменений не произошло?
Так на сервере он же не из триггера, полагаю, широковещать собрался...
Наверное, будет какое-то клиентское приложение, которое что-то там будет отслеживать...а если так, то функционал этого приложенения вполне можно втащить в основное клиентское приложение....и опять же грузить сетку ежесекундными запросами к центральной базе.
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33540254
_Балтика
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да и саму базу тоже...
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33540435
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Балтика...и опять же грузить сетку ежесекундными запросами к центральной базе.
зачем ежесекундными? вполне достаточно один раз после успешных изменений
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33540588
_Балтика
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftзачем ежесекундными? вполне достаточно один раз после успешных измененийЭто конечно верно. Но представте ситуацию, когда после получения сообщения одновременно сотня клиентов шлет одинаковые запросы к ЦБ.
К тому же это слишком трудоемко - таких клиентов создавать. При каждом изменении таблицы нужно проверять успешность сделанных изменений и затем слать сообщение об изменении этой таблицы. Можно конечно продумать какую-то универсальную ф-цию. Но уверяю Вас, есть выход проще :). И webus в правильном направлении копает.
эээээ... извиняюсь, дальше не могу эту тему обсуждать, не раскрывая корпоративной тайны :).
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33540789
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Балтика miksoftзачем ежесекундными? вполне достаточно один раз после успешных измененийЭто конечно верно. Но представте ситуацию, когда после получения сообщения одновременно сотня клиентов шлет одинаковые запросы к ЦБ.
К тому же это слишком трудоемко - таких клиентов создавать. При каждом изменении таблицы нужно проверять успешность сделанных изменений и затем слать сообщение об изменении этой таблицы. Можно конечно продумать какую-то универсальную ф-цию. Но уверяю Вас, есть выход проще :). И webus в правильном направлении копает.
эээээ... извиняюсь, дальше не могу эту тему обсуждать, не раскрывая корпоративной тайны :).
у меня такое ощущение, что Вы больше остальных осведомлены о внутренней организации проекта, которым занимается webus :)
а я пытаюсь что-то подсказать лишь исходя из того, что написано в форуме...
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33540973
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
webus еще не забывайте, что недостаточно просто широковещать по UDP - так как это ненадежный протокол, следует организовать еще и подтверждение о получении, а также проверку насчет целостности информации и отсутствия искажений. То есть прижется некий протокол навернуть свой еще.

Если все это происходит под виндой - можно попробовать использловать mailslots, они широковещательные и более надежны, чем "голый" UDP.

НО через базу - гораздо лучше.
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33541309
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--null--.... а также проверку насчет целостности информации и отсутствия искажений....

А вот с этого места поподробнее...
какую такую целостность ?
какое такое отсутствие искажений ?

Т.е. я правильно Вас понимаю, что на CRC в пакете UDP протокол кладёт большой и толстый (если он не нул) ?

может документацию почитаем, вместо того, что бы сказки рассказывать ?


с уважением
(круглый)
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33541346
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
Т.е. я правильно Вас понимаю, что на CRC в пакете UDP протокол кладёт большой и толстый (если он не нул) ?

может документацию почитаем, вместо того, что бы сказки рассказывать ?
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33541359
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0 в протоколе UDP не обязательно использование контрольных сумм
Тем более, что операционноя система автора неизвестна => предполагаем худшее
и второе- не гарантируется порядок поступления пакетов. Впрочем, для данной ситуации порядок не важен - сообщение видимо короткое

вот и все сказки а точнее RTFM :-)
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33541411
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--null--в протоколе UDP не обязательно использование контрольных сумм
...и второе- не гарантируется порядок поступления пакетов. Впрочем, для данной ситуации порядок не важен - сообщение видимо короткое
вот и все сказки а точнее RTFM :-)

1) не обязательное - это НЕ значит, что НЕЛЬЗЯ !
2) а порядок пакетов разве влияет на их ЦЕЛОСТНОСТь ? :)

а по поводу отличий UDP от TCP того же, лишь в том, что UDP НЕ ГАРАНТИРУЕТ ДОСТАВКУ.

(круглый)
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33541476
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok02) а порядок пакетов разве влияет на их ЦЕЛОСТНОСТь ? :)
влияет на целостность данных.

kolobok0а по поводу отличий UDP от TCP того же, лишь в том, что UDP НЕ ГАРАНТИРУЕТ ДОСТАВКУ.
увы... совсем не лишь !
описание UDP занимает меньше трех страниц, TCP - 85, не считая оглавления.
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33541532
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ваще-то можно посадить сервер, который регистрирует клиентов разного типа, скажем клиентов типа А, обновляющих объект В (в общем случае - совокупность записей из разных таблиц), типа С, Д и т.д.
Когда кто-то обновляет объект В, сервер рассылает сообщение только клиентам типа А и т.д.
Пишется это не сложно, работает на сокетах. Логика сервера прозрачна и логика клиентов может быть ассоциирована с классами, отображающими объекты.
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33541563
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторне обязательное - это НЕ значит, что НЕЛЬЗЯ !
kolobok0 докладываю - что в _некоторых_ ОС это применяется, в _некоторых_ можно включить udp checksum через setsockopt, а некоторые_ игнорируют подсчет checksum
В этом можно легко убедиться, просто посмотрев отлавливаемые сниффером пакеты.
Соответственно, используя udp было бы неразумно доверять операционке в этом вопросе. Тем более, повторяю - мы не знаем, что за ось.

автора по поводу отличий UDP от TCP того же, лишь в том, что UDP НЕ ГАРАНТИРУЕТ ДОСТАВКУ.
RTFM про протоколы с установлением соединения и без оного :-) А потом уже - про tcp и udp
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33541570
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftа по поводу отличий UDP от TCP того же, лишь в том, что UDP НЕ ГАРАНТИРУЕТ ДОСТАВКУ.
увы... совсем не лишь !
описание UDP занимает меньше трех страниц, TCP - 85, не считая оглавления.[/quot]

в очередь, только...в очередь..
А теперь правильный вопрос...

ВЫШЕ СМОТРИМ...видим...извиняемси...
речь шла О ПАКЕТЕ !!! одном заметьте ! ШИРОКОВЕЩАТЕЛЬНОМ !
и обьясните мне дураку... Как на ЛИКВИДНОСТЬ в ШИРОВЕЩАТЕЛЬНОМ пакете влияет ОЧЕРЁДНОСТь ?

ну и ?
давайте лучше быстренько открывайте доки по протоколам и освежайте память...а то енто ни в какие ворота млин...


для тех кто в танке, и верит в сказки....
1) UDP не гарантирует доставку пакетов. Соответственно данные могут приходить упорядоченно, могут не упорядоченно, могут не приходить... УЕС ? Или опять бум спорить ?
2) На один отдельно взятый пакет - очерёдность НУ НИКАКИМ БОКОМ НЕ распространяеться... УЕС ? Или бум спорить ?
3) Если CRC заполнена в UDP - она проверяется (должна проверяться по спецификации). УЕС ? Или бум спорить ?

4) Странные у Вас подходы - о качестве материала судить по страницам... Вот по кол-ву страниц - не скажу, в своё время изучал материал, а не кол-во этих страниц :)


с уважением
(круглый)
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33541576
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--null--....Соответственно, используя udp было бы неразумно доверять операционке в этом вопросе. Тем более, повторяю - мы не знаем, что за ось....

возможно Вы правы...с точки зрения факта заполнения. Но тоды мы не можем доверять и другому функционалу операционок...например целостности данных считанных с диска... но это уже другая тема...

(круглый)
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33541596
--null--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему? Целостность считанных данных как раз гарантируется. Как и целостность данных, приходящих по IP.
Скажем, контроллеры SCSI учитывают четность, контрольную сумму и время ожидания. И при проблемах - способны повторить чтение и снизить скорость передачи. Во всяком случае так в описаниях SCSI пртокола.
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33541624
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из того что у нас сделано - лучше пусть клиенты регистрируются в
в таблицу со следующими параметрами :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TABLE [NtfConfig] 
(
	id   [int] IDENTITY ( 1 ,  1 ) NOT NULL PRIMARY KEY ,
	host [nvarchar] ( 255 ) NOT NULL ,
	proxy [nvarchar] ( 255 ) ,
	proxy_port [int] ,
	port [int] NOT NULL ,					-- port of address
	PID  [int] NOT NULL ,					-- process id (for info only)
	timeout [int] NOT NULL,					-- timeout for persistent notification
	stamp [datetime] NOT NULL DEFAULT (getutcdate()))

клиенты бы раз в 15 минут обновляли свою запись на предмет типа живы еще, а сервер раз в пол-часа удалял бы старых клиентов.
А при рассылки сообщений пользовался этой таблицы для конкретной рассылки, потому как клиент может сидеть 3а фаерволами и тогда широковещательная рассылка не сработает.

Из нашего опыта (а у нас многотысячные клиенты, фактов потери udp на сетях T1 не бывало).
Ну и на случай потери в каждом пакете при рассылке есть время последней рассылки сообщений. И также есть рассылка по таймеру каждые 20 сек - типа сервер жив. И если время время последней рассылки не совпало, то клиент можно попросить сервер до-переслать изменения с последней успешной передачи.
...
Рейтинг: 0 / 0
Широковещалка на TCPServer
    #33541639
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0ВЫШЕ СМОТРИМ...видим...извиняемси...
речь шла О ПАКЕТЕ !!! одном заметьте ! ШИРОКОВЕЩАТЕЛЬНОМ !
и обьясните мне дураку... Как на ЛИКВИДНОСТЬ в ШИРОВЕЩАТЕЛЬНОМ пакете влияет ОЧЕРЁДНОСТь ?
...
2) На один отдельно взятый пакет - очерёдность НУ НИКАКИМ БОКОМ НЕ распространяеться... УЕС ? Или бум спорить ?

покажите, где у автора темы идет речь о том, что пакет будет только один ?
kolobok0
4) Странные у Вас подходы - о качестве материала судить по страницам... Вот по кол-ву страниц - не скажу, в своё время изучал материал, а не кол-во этих страниц :)
это было лишь к тому, что Вы не правы в слове "лишь"
различие в материале мне известно :)
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Широковещалка на TCPServer
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]