Подкиньте идею клиент/сервер ... :\

Тема в разделе "WASM.WIN32", создана пользователем DrSex, 19 ноя 2005.

Статус темы:
Закрыта.
  1. DrSex

    DrSex Юрий

    Публикаций:
    0
    Регистрация:
    1 апр 2005
    Сообщения:
    98
    Адрес:
    Россия
    Народ! Проблемка есть. Да и критика нужна... ;)



    Не могу придумать идею взаимодействия приложений (многоклиентовский чат с пересылкой файлов) через сокеты (только Win32 API) типа клиент-сервер. Сама сложность в типе реализации - нужно чтобы были классы. (ООП) Идей много, но что-то не сходится. Плз, подскажите.



    Как должно быть? Т.е. какие действия должен выполнять сервер, какие клиент?



    Вот что у меня было:

    На каждом компе запускается клиент. Он запускает сервер.

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



    Как должен работать сервер?

    Он имеет у себя список подключенных сокетов (клиенты). Ну и в соответствии с описанным выше отправляет и принимает данные.



    Какой протокол здесь лучше?

    Как в деталях передаются данные между клиентом и сервером, а также между серверами?
     
  2. Codeblight

    Codeblight New Member

    Публикаций:
    0
    Регистрация:
    17 окт 2005
    Сообщения:
    60
    Адрес:
    Russia
    Чет логику не понял :) Вообще если ты хочешь сервак отдельный - то он должен быть один, тогда протокол TCP и все клиенты коннектятся к нему. Без сервака жить нельзя и т.п.

    Если чат для локалки - тогда можно выбрать UDP и обойтись без сервера, просто вышвыривая пакеты в диапазон, указанный в настройках TCP. Гарантии о получении нету, но на 100мбит локалки они вряд ли где затеряются :)



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

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

    Если сервера нету :) тогда придумай свой протокол на UDP и все тоже самое только без сервера :), а список юзеров придется получать при прилете пакетиков аля "вошел" и сообщения юзеров подлавливать все таким же образом :) Насчет файлов - тогда только передача адреса и соединение по TCP иначе гемору много ...
     
  3. bober

    bober New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    153
    DrSex



    реализации - нужно чтобы были классы



    Кому нужно - компилятору?



    Codeblight









    Круто!!!! А без клиента только на серверах тоже можно?
     
  4. Codeblight

    Codeblight New Member

    Публикаций:
    0
    Регистрация:
    17 окт 2005
    Сообщения:
    60
    Адрес:
    Russia
    bober

    ну я немного не улавливаю ваши намеки :) Если чат для локалки, то обмен по UDP может быть осуществлен клиентом (он как шлет так и ловит сообщения). Непонимаю чего в этом неверного ? вы меня уж поправте если я неправ :)





    И так тоже можно, если вы ничего не хотите кроме серверов *)





    Наверное человек имел ввиду что он не на асме кодит *) и хочет быстро написать программу используя ООП.
     
  5. bober

    bober New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    153
    Codeblight







    А я непонимаю по каким критериям у вас сервер отличается от клиента, вы немогли бы разъяснить?
     
  6. rgo

    rgo New Member

    Публикаций:
    0
    Регистрация:
    21 мар 2005
    Сообщения:
    87


    имхо, ооп здесь ни к селу, ни к городу, ну разве что для GUI клиента :). Если этот гуй вообще нужен.
     
  7. rmn

    rmn Well-Known Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2004
    Сообщения:
    2.348
    Че вы спорите? Если нет сервера, то нет и клиента. Есть одна программа, выполняющая функции сервера и клиента.
     
  8. Codeblight

    Codeblight New Member

    Публикаций:
    0
    Регистрация:
    17 окт 2005
    Сообщения:
    60
    Адрес:
    Russia
    bober

    Вообще я их распределяю как: сервер выполняет действия над общей информацией для клиентов и обеспечивает их взяимосвязь с этой общей иноформацией, а клиент в свою очередь пользуется ей и подает серверу команды по ее модификации и т.п.

    В этом вопросе прав rmn т.к. неут там клиентов и серверов :) и вообще общей информации нету, у каждой тачки будет своя инфа, у кого-то неполная у кого-то более полная...

    rgo Ну вообще все можно без ООП, но неудобно это. Я понимаю все тут на асме привыкли кодить, но на нем нельзя быстро написать и отладить программу, вообще это тема другого топика, а у меня взаимподействие с сетью сделано на ООП :) и очень я вам скажу удобно :)
     
  9. bober

    bober New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    153
    rmn



    Соломоново решение:) Вы хотите в одном процессе открыть сушающий сокет, потом еще один для предачи первому данных - это еще круче! Типа ковырять в носу просунув правую руку под левой ногой?
     
  10. bober

    bober New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    153
    Codeblight



    Извини что сразу неврубился :))
     
  11. Codeblight

    Codeblight New Member

    Публикаций:
    0
    Регистрация:
    17 окт 2005
    Сообщения:
    60
    Адрес:
    Russia
    bober



    Если есть другие варианты реализации передачи на UDP ты не молчи - делись *)
     
  12. bober

    bober New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    153
    Codeblight







    Счас я пивка попью и поделюсь - только ты необижайся потом:) Интересно кто нанимет людей для раскрутки сайта ?????
     
  13. bober

    bober New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    153
    Codeblight







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

    bober New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    153
    Codeblight







    Конечно, и между мужиками и бабами нет разницы - ведь у всех сзади есть дырка:))







    А дапазон предварительно настроив рукаяткой на приемнике типа "VEF":))
     
  15. bober

    bober New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    153
    Codeblight







    Посвойски так сует руку в карман - и пользуется:)







    И находится эта инфа, межгалактическом пространстве:)
     
  16. bober

    bober New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    153
    Codeblight







    А не поити бы тебе туда где люди привыкли кодить на том же языке что и ты, и впаривать им свои драгоценные мысли ?:))
     
  17. bober

    bober New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    153
    Codeblight



    Ну ты пока почитай, пойду еще пивка попью:))
     
  18. Codeblight

    Codeblight New Member

    Публикаций:
    0
    Регистрация:
    17 окт 2005
    Сообщения:
    60
    Адрес:
    Russia
    bober



    Э.... собственно о чем вы :)?



    А я никого и не агетировал к ООП :) я просто сказал что удобно, можешь доказать обратное :)?



    Ну знаешь, конечно можно сделать сервер и организовать передачу по UDP но в случае чата (а мы говорим про чат) там сервера нету!



    Смотрю вы большой специалист в этом деле *)



    Ты так классно к словам предираешься, я прочитал топик и понял что человек слабо ориентируется в клеин-сервер организации передачи данных и попытался доходчиво объяснить... если ты считаешь что я сделал это неправильно - поправь меня и объясни более верно и понятно ОК ?



    А я никому ничего не впариваю, в этом случае я просто высказал свое скромное мнение.



    Да пей наздоровье, а топик можно перенести в раздел "пи**шь за жизнь".
     
  19. bober

    bober New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2005
    Сообщения:
    153
    ты не молчи - делись *)



    А чем ты недоволен - сам попросил?
     
  20. Codeblight

    Codeblight New Member

    Публикаций:
    0
    Регистрация:
    17 окт 2005
    Сообщения:
    60
    Адрес:
    Russia
    bober

    я думал ты будешь по теме делиться *)... а ты о своем наболевшем :)
     
Статус темы:
Закрыта.