• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы magister80
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

magister80

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

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

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

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

Barmutik

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

magister80

Для: Barmutik

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

Coldfate

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

Barmutik

Для: Coldfate

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

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

zubr

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

Barmutik

Для: Coldfate

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

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

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

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

Coldfate

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

И потом какая разница каким образом использовать готовый код - методом копи-паст, как ты предлагаешь или использованием готового решения в виде компонента.

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

По большому счету использование функций WinAPI - это тоже использование готовых решений от Microsoft, только на более низком уровне.

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

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

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

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

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

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

magister80

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

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

Coldfate

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

Насчёт сети я скину проект. Там есть отправление сообщения. Графический файл можешь отправлять просто по пакетам (предполагается, что ты читал материалы с DelphiKingdom). Функция SendTo может отправлять содержимое переменных любого типа. Текст можно отправлять через String[255], как в проекте, а графический файл - через указатели, например, блоками по 1024 байт:
Код:
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 КБ · Просмотры: 195
M

magister80

Для: Coldfate

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!