Рассылка сообщений с сервера на клиентский компьютер

Тема в разделе "Delphi - Сети", создана пользователем magister80, 18 апр 2007.

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

    magister80 Гость

    Здраствуйте,уважаемые господа форумчане!!!!!!!!!!

    Я тут человек новый,только зарегестрировался,но очень надеюсь на вашу помощ.

    У меня такая проблемка,есть сервер и два клиентских компа. Нужно сделать так,что-бы с сервера посылалось сообщение параллельно на оба клиентских компа,и в обратном порядке с клиентских на сервер. Сообщение может содержать текст или графический файл.Сообщение должно выпрыгивать в не зависимости от пользователя.Я не особо представляю как это лучше сделать. Буду благодарен,за помощ!

    Спасибо,заранее....
     
  2. Barmutik

    Barmutik Гость

    Используйте готовые компоненты для организации клиент серверной работы.. посмотрите примеры идущие в поставке с Indy.. там много готового из того что Вам требуется...
     
  3. magister80

    magister80 Гость

    Для: Barmutik

    Спасибо,буду смотреть!!!!!!!
     
  4. Coldfate

    Coldfate Гость

    Не пользуйся Инди - полное дерьмо! Вещь глюкавая и дебильная, написанная криворукими ламерами. Юзай WinAPI - надежней, это уж точно.
     
  5. Barmutik

    Barmutik Гость

    Для: Coldfate

    Просьба не делать таких громогласных заявлений... понятно что в ней есть поблемы но для написания простейших проектов эта библиотека даст 10000% форы использованию WinAPI...
     
  6. Coldfate

    Coldfate Гость

    Заявление вовсе не громогласное, особенно если учесть, что 10000% добавляется в основном к размеру Exe и быстродействию. Если ваша цель - сбацать что-нибудь хотя бы работающее, чтобы отвязаться, юзайте Indy. Если же цель - быстрая и маленькая ( по Exe) программа, принцип которой Вам понятен и Вы гарантируете, что ошибок не будет, то юзайте WinAPI. Кстати, WinSock не выдает мерзких исключений, если произошла ошибка. Indy представляет собой интерес разве что для "оччень продвинутых", объем или цель работы которых не позволяет использовать WinSock. Для людей, которым нужно организовать клиент-серверную связь и которые ценят размер и быстродействие, Indy - кошмар из кошмаров. Я тоже пытался начать с Инди и мне не повезло. Наоборот, товарищ Barmutik, для написания простейших проектов хуже Indy ничего нет. Прошу прощения за рекламу WinSock.
    Товарищ magister80! Здесь (http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1021) есть великолепное краткое руководство по WinSock и сокетам Windows. Советую прочитать. Разобраться с WinSock на первых порах, наверное, не очень легко, но результат того стоит, поверьте! На своем опыте знаю.

    P.S. Никого не хочу обидеть; Знаете, в чем различие между программистом и ламером? Программист, товарищи, пишет программы и умеет в них разобраться, а ламер накидает на форму компонентов, передерет кусок чужого кода и бьет себя в грудь - МОЯ ПРОГРАММА!!!
     
  7. zubr

    zubr Гость

    Для: Coldfate
    Ты думаешь, что если ты немного изучил WinSock - то уже крутой программист? WinSock далеко не самая сложная технология Microsoft. И потом какая разница каким образом использовать готовый код - методом копи-паст, как ты предлагаешь или использованием готового решения в виде компонента. На мой взгляд, правильнее то решение, которое позволяет создать нормально работающий код с минимальными временными, и если необходимо ресурсными затратами. По большому счету использование функций WinAPI - это тоже использование готовых решений от Microsoft, только на более низком уровне. Функции WinAPI - это только оболочка к системным функциям работающим на уровне ядра Windows. А проблема размера экзешника - это, имхо, проблема прыщавых юношей, пытающихся самоутвердиться написанием вирусов и троянов.
     
  8. Barmutik

    Barmutik Гость

    Для: Coldfate

    Я не сколько не хочу умалить достоинств использования низкоуровневых системных функций(касательно любого аспекта программирования). И я даже уверен что использование такого подхода в серьёзном бюджетном проекте заслуживает внимания\рассмотрения\использования, НО.. как правило большинство проектов (очень мелких\мелких\средних) сильно ограничены по времени и другим ресурсам и попытка использовать в них только низкоуровневые системные функции почти гарантированно(за очень редким исколючением) приведёт к провалу проекта.

    Я так же и не утверждаю что Indy очень надёжная библиотека .. но для решения определённого круга задач она подходит и позволяет реализовать некоторые действия во вного раз быстрее чем на WinSock.

    Тут каждый выбирает что хочет\может .. никто ж людям не мешает писать GUI на WinAPI.. но почему-то абсолютное большинство так не делает .. хотя конечно сравнение с WinSock не совсем корректно...

    Я так же согласен с zubr, что проблема размера исполняемых модулей (обычных программ) уже не столь актуальна как это было 7-10 лет назад...
     
  9. Coldfate

    Coldfate Гость

    Товарищ zubr!
    И что тебя сподвигнуло так решить?... Ты не так понял меня.

    Э-э, нужно знать границы. Во всем нужна своя, так сказать, золотая середина :(

    Ну ладно, давайте писать на асме проги под ведро...Нет, зачем на асме?! В hex-режиме!!!!! Я, конечно, могу ошибаться, но по твоему посту считаю, что ты не любишь WinAPI? А зря. Нельзя полностью обойтись без готовых решений, но можно как-нибудь не доводить дело до копи-паст.

    Вот именно. Нормально работающий. А я инди не доверяю. :) Не судите строго.

    Это называется хороший стиль. Правда, выглядит несколько странно, что сетевая игра "крестики-нолики" весит больше, чем ведровский пинбол? Только не надо эту реплику ковырять. Я к примеру.

    Товарищ Barmutik! Я, конечно, могу понять, что иногда WinSock - слишком долго, но мое мнение предвзято - я привык уже к WinSock'у. Потому и "рекламирую". Однако не согласен с тем, что использование НФ приведет к провалу проекта. На своем опыте знаю, что это далеко не так.

    Но, в общем, не важно. Все это, если честно, оффтоп. Что мой пост сейчас, что пост zubr'a. Давайте не отвлекаться от темы.
     
  10. magister80

    magister80 Гость

    Уважаемые господа Coldfate и Barmutik:

    Пожалуйста,я очень прошу помогите написать прогу,а... У меня что-то ничего не выходит,я совсем зелёный в этих делах,нарыл кучу литературы по Indy и WinAPI, но толку пока никакого,а проэкт нужно сдать в срочном порядке.... Если это возможно.....
    Я буду очень вам обоим благодарен,и любым другим форумчанам
     
  11. Coldfate

    Coldfate Гость

    Хотя на delphikingdom были исходники...Ну да ладно. Только это на WinSock, не знаю, поможет ли... :)

    Насчёт сети я скину проект. Там есть отправление сообщения. Графический файл можешь отправлять просто по пакетам (предполагается, что ты читал материалы с DelphiKingdom). Функция SendTo может отправлять содержимое переменных любого типа. Текст можно отправлять через String[255], как в проекте, а графический файл - через указатели, например, блоками по 1024 байт:
    Код (Text):
    var pckt: Pointer;
    begin
    getmem(pckt, 1024);
    fs.ReadBuffer(pckt^, 1024);
    SendTo(SSock, pckt^, 1024, clientaddr, SizeOf(clientaddr), 0);
    end;
    В проекте для обработки сообщений есть потоки - listener.pas и в сервере, и в клиенте. Мне было лень ставить таймауты, поэтому клиенты могут выдавать сбой, если ты попытаешься их закрыть. Но фиг с ними, важна начинка. В проекте есть комментарии. :)
     

    Вложения:

    • winsock.rar
      Размер файла:
      5,1 КБ
      Просмотров:
      69
  12. magister80

    magister80 Гость

    Для: Coldfate

    Спасибо ограменное,не знаю и как отблагодарить!!!!!!!!!!!
    Просто,огромное ЧЕЛОВЕЧЕСКОЕ С П А С И Б О !!!!!!!!!!!!!!
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей