|
|
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
Привет всем! Такая проблема! Пишу клиент-серверное приложение с использованием MySQL. На серваке стоит MySQL.На жругих компах написаны клиенты.Так же на серваке болтаеться простенькая программа-сервер с использованием компонента idTCPServer. Когда с какого либо клиента посылаеться сообщение на TCPServer, надо чтобы он всем другим активным клиентам его переслал. Одним словом это сделано для того, чтобы когда один клиент внес изменения в БД все остальные без проблем бы обновились. Как заставить TCPServer отвечать не тому клиенту, что сообщение послал, а всем активным в данный момент ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2006, 20:24 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
Для широковешательных сообшений следует использовать протокол UDP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2006, 08:33 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
ИМХО ненадежно. Лучше сделать это средствами БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2006, 08:48 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
maytonИМХО ненадежно. Лучше сделать это средствами БД. присоединяюсь! кстати, широковещать вполне может сам клиент, который что-то изменил. сервер для этого совершенно не нужен. во-вторых, при таком методе оповещения будут проблемы, если будет запущено два клиентских приложения на одном компе - они не смогут оба открыть для прослушивания один и тот же порт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2006, 09:08 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
Спасибо все что откликнулись! Интересует тема на счет широковещательных udp-сообщений! Раскажите что да как!? А на счет запуске двух приложений на одном компе, это можно запретить программно в той же софтине.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 07:25 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
miksoft maytonИМХО ненадежно. Лучше сделать это средствами БД. присоединяюсь! кстати, широковещать вполне может сам клиент, который что-то изменил. сервер для этого совершенно не нужен. во-вторых, при таком методе оповещения будут проблемы, если будет запущено два клиентских приложения на одном компе - они не смогут оба открыть для прослушивания один и тот же порт.Клиент конечно широковещать может, но где гаранти что в базе не сработало какое-нибудь правило или триггер и никаких изменений не произошло? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 10:47 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
_БалтикаКлиент конечно широковещать может, но где гаранти что в базе не сработало какое-нибудь правило или триггер и никаких изменений не произошло? Так на сервере он же не из триггера, полагаю, широковещать собрался... Наверное, будет какое-то клиентское приложение, которое что-то там будет отслеживать...а если так, то функционал этого приложенения вполне можно втащить в основное клиентское приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 11:17 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
miksoft _БалтикаКлиент конечно широковещать может, но где гаранти что в базе не сработало какое-нибудь правило или триггер и никаких изменений не произошло? Так на сервере он же не из триггера, полагаю, широковещать собрался... Наверное, будет какое-то клиентское приложение, которое что-то там будет отслеживать...а если так, то функционал этого приложенения вполне можно втащить в основное клиентское приложение....и опять же грузить сетку ежесекундными запросами к центральной базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 11:20 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
да и саму базу тоже... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 11:22 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
_Балтика...и опять же грузить сетку ежесекундными запросами к центральной базе. зачем ежесекундными? вполне достаточно один раз после успешных изменений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 12:15 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
miksoftзачем ежесекундными? вполне достаточно один раз после успешных измененийЭто конечно верно. Но представте ситуацию, когда после получения сообщения одновременно сотня клиентов шлет одинаковые запросы к ЦБ. К тому же это слишком трудоемко - таких клиентов создавать. При каждом изменении таблицы нужно проверять успешность сделанных изменений и затем слать сообщение об изменении этой таблицы. Можно конечно продумать какую-то универсальную ф-цию. Но уверяю Вас, есть выход проще :). И webus в правильном направлении копает. эээээ... извиняюсь, дальше не могу эту тему обсуждать, не раскрывая корпоративной тайны :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 12:57 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
_Балтика miksoftзачем ежесекундными? вполне достаточно один раз после успешных измененийЭто конечно верно. Но представте ситуацию, когда после получения сообщения одновременно сотня клиентов шлет одинаковые запросы к ЦБ. К тому же это слишком трудоемко - таких клиентов создавать. При каждом изменении таблицы нужно проверять успешность сделанных изменений и затем слать сообщение об изменении этой таблицы. Можно конечно продумать какую-то универсальную ф-цию. Но уверяю Вас, есть выход проще :). И webus в правильном направлении копает. эээээ... извиняюсь, дальше не могу эту тему обсуждать, не раскрывая корпоративной тайны :). у меня такое ощущение, что Вы больше остальных осведомлены о внутренней организации проекта, которым занимается webus :) а я пытаюсь что-то подсказать лишь исходя из того, что написано в форуме... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 13:43 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
webus еще не забывайте, что недостаточно просто широковещать по UDP - так как это ненадежный протокол, следует организовать еще и подтверждение о получении, а также проверку насчет целостности информации и отсутствия искажений. То есть прижется некий протокол навернуть свой еще. Если все это происходит под виндой - можно попробовать использловать mailslots, они широковещательные и более надежны, чем "голый" UDP. НО через базу - гораздо лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 14:31 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
--null--.... а также проверку насчет целостности информации и отсутствия искажений.... А вот с этого места поподробнее... какую такую целостность ? какое такое отсутствие искажений ? Т.е. я правильно Вас понимаю, что на CRC в пакете UDP протокол кладёт большой и толстый (если он не нул) ? может документацию почитаем, вместо того, что бы сказки рассказывать ? с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 16:04 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 16:14 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
kolobok0 в протоколе UDP не обязательно использование контрольных сумм Тем более, что операционноя система автора неизвестна => предполагаем худшее и второе- не гарантируется порядок поступления пакетов. Впрочем, для данной ситуации порядок не важен - сообщение видимо короткое вот и все сказки а точнее RTFM :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 16:18 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
--null--в протоколе UDP не обязательно использование контрольных сумм ...и второе- не гарантируется порядок поступления пакетов. Впрочем, для данной ситуации порядок не важен - сообщение видимо короткое вот и все сказки а точнее RTFM :-) 1) не обязательное - это НЕ значит, что НЕЛЬЗЯ ! 2) а порядок пакетов разве влияет на их ЦЕЛОСТНОСТь ? :) а по поводу отличий UDP от TCP того же, лишь в том, что UDP НЕ ГАРАНТИРУЕТ ДОСТАВКУ. (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 16:34 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
kolobok02) а порядок пакетов разве влияет на их ЦЕЛОСТНОСТь ? :) влияет на целостность данных. kolobok0а по поводу отличий UDP от TCP того же, лишь в том, что UDP НЕ ГАРАНТИРУЕТ ДОСТАВКУ. увы... совсем не лишь ! описание UDP занимает меньше трех страниц, TCP - 85, не считая оглавления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 16:49 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
Ваще-то можно посадить сервер, который регистрирует клиентов разного типа, скажем клиентов типа А, обновляющих объект В (в общем случае - совокупность записей из разных таблиц), типа С, Д и т.д. Когда кто-то обновляет объект В, сервер рассылает сообщение только клиентам типа А и т.д. Пишется это не сложно, работает на сокетах. Логика сервера прозрачна и логика клиентов может быть ассоциирована с классами, отображающими объекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 17:06 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
авторне обязательное - это НЕ значит, что НЕЛЬЗЯ ! kolobok0 докладываю - что в _некоторых_ ОС это применяется, в _некоторых_ можно включить udp checksum через setsockopt, а некоторые_ игнорируют подсчет checksum В этом можно легко убедиться, просто посмотрев отлавливаемые сниффером пакеты. Соответственно, используя udp было бы неразумно доверять операционке в этом вопросе. Тем более, повторяю - мы не знаем, что за ось. автора по поводу отличий UDP от TCP того же, лишь в том, что UDP НЕ ГАРАНТИРУЕТ ДОСТАВКУ. RTFM про протоколы с установлением соединения и без оного :-) А потом уже - про tcp и udp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 17:14 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
miksoftа по поводу отличий UDP от TCP того же, лишь в том, что UDP НЕ ГАРАНТИРУЕТ ДОСТАВКУ. увы... совсем не лишь ! описание UDP занимает меньше трех страниц, TCP - 85, не считая оглавления.[/quot] в очередь, только...в очередь.. А теперь правильный вопрос... ВЫШЕ СМОТРИМ...видим...извиняемси... речь шла О ПАКЕТЕ !!! одном заметьте ! ШИРОКОВЕЩАТЕЛЬНОМ ! и обьясните мне дураку... Как на ЛИКВИДНОСТЬ в ШИРОВЕЩАТЕЛЬНОМ пакете влияет ОЧЕРЁДНОСТь ? ну и ? давайте лучше быстренько открывайте доки по протоколам и освежайте память...а то енто ни в какие ворота млин... для тех кто в танке, и верит в сказки.... 1) UDP не гарантирует доставку пакетов. Соответственно данные могут приходить упорядоченно, могут не упорядоченно, могут не приходить... УЕС ? Или опять бум спорить ? 2) На один отдельно взятый пакет - очерёдность НУ НИКАКИМ БОКОМ НЕ распространяеться... УЕС ? Или бум спорить ? 3) Если CRC заполнена в UDP - она проверяется (должна проверяться по спецификации). УЕС ? Или бум спорить ? 4) Странные у Вас подходы - о качестве материала судить по страницам... Вот по кол-ву страниц - не скажу, в своё время изучал материал, а не кол-во этих страниц :) с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 17:17 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
--null--....Соответственно, используя udp было бы неразумно доверять операционке в этом вопросе. Тем более, повторяю - мы не знаем, что за ось.... возможно Вы правы...с точки зрения факта заполнения. Но тоды мы не можем доверять и другому функционалу операционок...например целостности данных считанных с диска... но это уже другая тема... (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 17:22 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
почему? Целостность считанных данных как раз гарантируется. Как и целостность данных, приходящих по IP. Скажем, контроллеры SCSI учитывают четность, контрольную сумму и время ожидания. И при проблемах - способны повторить чтение и снизить скорость передачи. Во всяком случае так в описаниях SCSI пртокола. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 17:31 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
из того что у нас сделано - лучше пусть клиенты регистрируются в в таблицу со следующими параметрами : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. клиенты бы раз в 15 минут обновляли свою запись на предмет типа живы еще, а сервер раз в пол-часа удалял бы старых клиентов. А при рассылки сообщений пользовался этой таблицы для конкретной рассылки, потому как клиент может сидеть 3а фаерволами и тогда широковещательная рассылка не сработает. Из нашего опыта (а у нас многотысячные клиенты, фактов потери udp на сетях T1 не бывало). Ну и на случай потери в каждом пакете при рассылке есть время последней рассылки сообщений. И также есть рассылка по таймеру каждые 20 сек - типа сервер жив. И если время время последней рассылки не совпало, то клиент можно попросить сервер до-переслать изменения с последней успешной передачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 17:40 |
|
||
|
Широковещалка на TCPServer
|
|||
|---|---|---|---|
|
#18+
kolobok0ВЫШЕ СМОТРИМ...видим...извиняемси... речь шла О ПАКЕТЕ !!! одном заметьте ! ШИРОКОВЕЩАТЕЛЬНОМ ! и обьясните мне дураку... Как на ЛИКВИДНОСТЬ в ШИРОВЕЩАТЕЛЬНОМ пакете влияет ОЧЕРЁДНОСТь ? ... 2) На один отдельно взятый пакет - очерёдность НУ НИКАКИМ БОКОМ НЕ распространяеться... УЕС ? Или бум спорить ? покажите, где у автора темы идет речь о том, что пакет будет только один ? kolobok0 4) Странные у Вас подходы - о качестве материала судить по страницам... Вот по кол-ву страниц - не скажу, в своё время изучал материал, а не кол-во этих страниц :) это было лишь к тому, что Вы не правы в слове "лишь" различие в материале мне известно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 17:44 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33541596&tid=2031928]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
145ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
76ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 506ms |

| 0 / 0 |
