Разработка мультипоточной программы, раздающая данные множеству клиентав( не менее 400 машин)

Тема в разделе "WASM.NETWORKS", создана пользователем EvilsInterrupt, 31 авг 2005.

  1. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Вы не поверите, на какой оси крутится сейчас подобная программа в данный момент, ладно она еще на компонента из вкладки "internet", типа в отделе только с билдером 6.0 работают, так это прога еще и на win me работает! :)))

    помимо этой проги там еще 3 сервычных программ нашей выделки! :))
     
  2. SnugForce

    SnugForce New Member

    Публикаций:
    0
    Регистрация:
    2 май 2005
    Сообщения:
    373
    Адрес:
    Из домУ
    С синхронизацией замучаешься. Лучше создавай массив на каждый поток. Т.е. к примеру один поток обслуживает 10-30 клиентов. Будет менджер потоков, который добавляет им клиента в массив если есть свободные места. Таким образом пару зайцев можно убить:

    1)Если создашь несколько таких потоков сразу, то всплеск клиентов пройдет не заметно

    2)Меньше потоков + производительность.



    Читал где, что ME лучше для работы с сетью лучше не использовать, а уж для сервера...

    Ком-ты там все глючные, кроме indy, но их лучше использовать для клиента
     
  3. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Решил сделать по другому:

    1. Приходит клинт, он помещается в очередь(хэндл сокета)

    2. по приходу от него fs_reed в очередь в его элементе делаю флаг 1

    3. потоки следящии за отправкой данных просматривая массив этот каждому клиенту с флагом 1 отправляют данные и обнуляя после отправки
     
  4. SnugForce

    SnugForce New Member

    Публикаций:
    0
    Регистрация:
    2 май 2005
    Сообщения:
    373
    Адрес:
    Из домУ
    Ну и будешь для всей кучи потоков синхронизировать по общим данным. В итоге на переходы в режим ядра для каждого потока куча времени убьется.
     
  5. hello_world

    hello_world New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2003
    Сообщения:
    55
    Адрес:
    москва
    А не проще поднять готовый ftp/http сервак и написать под него простенький клиент?
     
  6. KiNDeR

    KiNDeR New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2003
    Сообщения:
    258
    Адрес:
    Russia
    И вообще формат данных какой, специфический или плэйн/текст?

    Если просто текст, который не нужно во что-то преобразовывать и форматировать, то не проще ли поднять IRC-сервер, зарегить канал для этой беды и рассылать?...

    Хотя для ворматирования и преобразования можно написать какой-нибудб проксик, наподобие IRXP, в нем делать необходимые вещи по преобразованию...
     
  7. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Данные это заполненная небольшая структура,содержащая технол.параметры. их нужно передать по коннекту клиента и запросу от него,но в данный момент все работает по таймеру срабатывающему через 3 минуты(каждые), У меня уже есть программа предшественник,но ... ээ... сколько я не пытаюсь понять эти компоненты, у меня они идуть, но с громадным трудом! :))) А сдавать уже завтра надо(вернее показать хоть какой то результат) блин, и че эти садисты требуют билдера, мне было бы проще по статьям васма на асме написать, ан нет, на предприятии станадрт, только си++ и с помощью билдера!



    Вот на данный момент мне нужно сделать до завтра, чтобы моя утила смогла подконнектиться на ip1 порту p1, слушая на p2 и те кто при коннектился разослать любую пока строку в 80 символов всем законнетившимся клиентам эту строку кажждые 3 мин. блин на визуале чуть проще sleep(я ля скоко нада), че нить с мсдн взял, но блин в билдере это ужас!!! Компоненты явно придуманы чтобы меня с работы уволить!

    ЗЫ:

    Сорри, но уже бесит упертость людей придерживающихся одного стандарта.
     
  8. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"




    А что тебе мешает в билдере на апи писать? Или поставлено ОБЯЗАТЕЛЬНОЕ условие писать на компонентах? Если такое условие есть, то можешь сказать начальнику что он дурак (во всяком случае я бы не побоялся так сказать если бы меня заставили кодить сетевые приложения на компонентах).
     
  9. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Именно так и говорит, и дело в том что на компонентах, а в том что по его словам: "я такую прогу за час на катаю, а ты паришься", а у меня мышление другое, седня 25 мин. убил на то чтобы напистать велосипед, когда он уже есть atoi(char *). С одной стороны он прав, но с другой стороны, он ведь отчетливо понимал, что берет меня: "работать с контроллероми", а это взять данные с контроллера и положить в файл. Месяц я уже дурью маюсь, сначала с долбанным ODAC под билдером ознакамливался, теперь с Компонентами сокетов вторую неделю, вроде кажется простым положил на форму,настроил и получил банан, но не получается!



    По этому прошу тех кто не занят, и тем кому не влом написать утилу которая зная ip1,port1 будет брать данные и рассылать всем под коннектившимся на port2 эти данные каждые 3 мин. отсылать клиентам, если не трудно и кто свободен может напишет такую прожку?

    я бы и сам написал но за неделю, а тут же чуть ли не выговор! теребят, а я еще только вливаюсь в этот бешенный ритм спешки, хоть не надеюсь на чью то помощь, но спасибо за понимание и участие
     
  10. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    Я бы написал, но только на Delphi или Visual C и на API.

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

    Лучший вариант - это сказать начальнику что он дурак. И пусть он тебя увольняет. Я бы не стал работать в таких условиях.
     
  11. Vovane

    Vovane New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2004
    Сообщения:
    58
    Адрес:
    Afghanistan
    EvilsInterrupt



    Попробуй в своем билдере использовать приатаченый файлик.

    Это шаблон конрола на чистом асме.

    В дельфи и басике вроде работает в билдере не знаю.



    [​IMG] _218056443__Servr.ocx
     
  12. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Огромное спасибо SnugForce за то что вызвался помочь с "полу" просьбы!!!
     
  13. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    Обязательно попробую, завтра утром как на работу приду, а пока продолжаю писать на визуал с++ 6.0 эту вещь. может че нить на программю, а после попробую перевести на билдер



    ms_rem

    время если есть, то я твоей бы версии данной проги бы обрадовался, а на чем не важно, потом попробую перевести, и мысля возникла, как заставить их мне дать добро на визуал С++ 6.0 :)))
     
  14. yureckor

    yureckor New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    494
    Адрес:
    Russia
    EvilsInterrupt

    мне на работе дали добро на асм после того, как я в два раза быстрее сделал то, что обычные люди делали на дельфи :) (тоже сеть, рассылка сообщений, удаленный контроль и т.п.)

    Хотя я правда и не спрашивал :)
     
  15. Vovane

    Vovane New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2004
    Сообщения:
    58
    Адрес:
    Afghanistan
    EvilsInterrupt

    Обязательно попробую, завтра утром как на работу приду,

    Однако, если ты еще не дошел до работы, то неслабый у тебя график работы:)
     
  16. EvilsInterrupt

    EvilsInterrupt Постигающий азы дзена

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    2.428
    Адрес:
    Russia
    :) У меня блин, сейчас работа в режиме виндовоза, Дали задание щас, а ты вчера его уже должен был сдать. Я не привык к такому, вот и приходиться выбирать по приорететам
     
  17. SnugForce

    SnugForce New Member

    Публикаций:
    0
    Регистрация:
    2 май 2005
    Сообщения:
    373
    Адрес:
    Из домУ
    Помого-то помог, но каюсь - на ком-тах. Времени не было на API писать, Да и опыта малово-то будет.