169 похожих чатов

А вот подскажите про пайпы. Это типа общей памяти из

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

75 ответов

14 просмотров

Смотря в какой ос, но примерно да. А зачем тебе пайпы? В Винде бывают именованные, анонимные...но если тебе для коммуникации между процессами, то есть способы проще

Вообще, это потоки. Типа стандартных, это частность, STDIN, STDOUT, STDERR. Можно их законнектить, и узнавать, есть ли что в потоке. Но можно, абстрактно, рассмотреть их и как описал.

Serjone- Автор вопроса
Александр В
Смотря в какой ос, но примерно да. А зачем тебе п...

Мне не надо способ проще. Мне надо работать со всратыми приложениями, которые общаются через пайпы. Подозреваю, что есть способ выкинуть эти приложения и работать с драйвером юсб напрямую, но до юсб я пока не дорос =(

Serjone
Мне не надо способ проще. Мне надо работать со вср...

Ну тогда тебе курить: https://learn.microsoft.com/ru-ru/windows/win32/ipc/named-pipes , https://learn.microsoft.com/ru-ru/windows/win32/ipc/anonymous-pipes

Serjone- Автор вопроса
Alexey Gavrilov
Вообще, это потоки. Типа стандартных, это частност...

Я прост не понимаю, почему такие сложные примеры работы с ними. Нашёл в интернетах их три, или четыре, разной степени всратости. Пока самый простой это от @rouse_79 2005 чтоли года выпуска, работаю над ним.

Serjone- Автор вопроса
Александр В
Ну тогда тебе курить: https://learn.microsoft.com/...

Это я покурил, тоже вроде просто всё. Но всратость примеров, которые переводились с этих статей на паскаль, поражает.

Serjone
Это я покурил, тоже вроде просто всё. Но всратость...

Ну вот более простые: https://github.com/peter-bloomfield/win32-named-pipes-example/tree/master/src

Serjone- Автор вопроса
Александр В
Ну вот более простые: https://github.com/peter-blo...

вот, да, на сях как-то вообще всё просто

Serjone
Мне не надо способ проще. Мне надо работать со вср...

У Багеля есть норм статья и модули, есть и другие варианты. Implementing Windows Anonymous Pipe Into Class.CodeCall Inter Process Communication Using Pipes.Behind IPC with Named Pipes.CodeProject Multithreading - The Delphi way Named Pipe, Vista, Seven and Service.Synopse NamedPipe - кривые руки или чмошный MS.rsdn names.AlexK names.RIT names.Russel names.WilSonc nPipe.theunknownones part.RemObjects part.wyUpdate.CS.GoogleCode Performance Monitoring and Building an HTTP Gateway Server services.Savatzki StdIn-StdOut This Old Pipe.C names.Cromis IPC.From Zero To One именнованые каналы, CallNamedPipe.rsdn Пример исп-я Private Object Security в D Что такое Named Pipes и как с ними бороться.Мастера Delphi outlook.theDelphiMagazine.62.zip Using PIPES for messages.txt

Serjone- Автор вопроса
Alexey Gavrilov
@Serjone123

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

Serjone
Не понимаю, почему клиент и сервер все стараются з...

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

Serjone
Я прост не понимаю, почему такие сложные примеры р...

https://pastebin.com/E9TKuycq - вот перекинутый на Delphi вариант, на скорую руку

Serjone- Автор вопроса
Alexey Gavrilov
Вообще не обязательно. Но все же фреймворки пишут....

Проблема лишь в том, что фреймворкописатели настолько оторваны от начинающих, что их примеры становятся бесполезными для понимания сути работы. Хорошо, когда пример показывает, как работать с конкретной задачей, а не то, как виртуозно примерописатель управляется с указателями, классами классов и массивами массивов. И проверок побольше.

Serjone
Не понимаю, почему клиент и сервер все стараются з...

Строго говоря, это не клиент сервер. А скорее общий доступ к файлу, который может работать как только в один конец, так и в оба

Serjone- Автор вопроса
Александр В
Строго говоря, это не клиент сервер. А скорее общи...

ну, грубо говоря, есть ведь создатель пайпа, а есть один/много тех, кто этот канал юзает. По аналогии с сетью, это больше клиент-серверная концепция. Мне, чтобы отреверсить и обойти одну из ненужных цепочек между мной и железкой, с которой общаюсь, нужно создать клиента, который будет подключаться к существующему пайпу, дабы понять, как проходит подключение и сервера, который будет эмулировать настоящий сервер, для вытягивания из ненужной прослойки команд, которыми она оперирует.

Serjone
Проблема лишь в том, что фреймворкописатели настол...

@CynicRus В современных реалиях, применение Pipe(как и MailSlots) ограниченное. Pipe сейчас, в основном, но не всегда, используют при работе все с теми же STDIN, STDOUT, STDERR.

Serjone
кросивое

И да, классно и просто использовать их в процессах.

Alexey Gavrilov
@CynicRus В современных реалиях, применение Pipe(...

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

Александр В
Ну дык этож как применишь, для ipc вполне, не хуже...

Первое сообщение на rsdn 😊 http://rsdn.org/forum/winapi/200054

Serjone- Автор вопроса
Александр В
https://pastebin.com/E9TKuycq - вот перекинутый на...

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

Serjone
а как узнать, какие в системе существуют пайпы? На...

Вроде от руссиновича показывает пайпы Или SystemInformer (бывш. ProcessHacker)

Serjone
Я прост не понимаю, почему такие сложные примеры р...

Ты если про мою вот эту демку https://rouse.drkb.ru/network.php#fwiocompletionpipe То учти - она изначально была разработана и вообще использовалась в принципе как канал общения между клиентским софтом и серверной службой (причем именно винапишной, а не VCL-ной). За качество я ручаюсь ибо много лет этот код проработал и сбоев с ним не было. Она поэтому так и реализована что со стороны сервера аё активируешь и висишь на этой точке, пока не остановишь. Т.е. это было так разработано специально.

Александр В
Смотря в какой ос, но примерно да. А зачем тебе п...

В Лазаре на разных ОС что юзают для общения между процессами?

Serjone
Это я покурил, тоже вроде просто всё. Но всратость...

Когда кажется, что что-то сделано по-идотски идиотами, есть нехилый шанс, что на самом деле что-то не до конца понял из-за не владения контекстом сам читатель.

А Андрей
В Лазаре на разных ОС что юзают для общения между ...

А какая разница? В общем случае, сокеты самый универсальный вариант. Нужно больше вводных. Взаимодействие через сеть предполагается? Какой уровень абстракции? Зависимости допускаются? К тому, мб DBus будет простым и понятным выбором? Н-р.

Александр (Rouse_) Багель
Ты если про мою вот эту демку https://rouse.drkb.r...

Это я про эту демку... И это... Breadcrumb control доделал бы... Без привязки к FS. 😘

Alexey Gavrilov
А какая разница? В общем случае, сокеты самый унив...

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

А Андрей
Работа только на локальной машине, зависимости доп...

А ограничения по платформам? К тому, что сейчас, всякие MQ в фаворе. MQTT Легонький и простой/понятный. xNix - DBus. На низком уровне - Memory Mapped File.

Alexey Gavrilov
Это я про эту демку... И это... Breadcrumb control...

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

Alexey Gavrilov
Ах тыж ленивая...а это не оффтоп, упс.

Ну там реально его целиком с нуля переписывать, а у меня на это времени нет т.к. сейчас все свободное время отдано под CPU-View

Alexey Gavrilov
Вообще не обязательно. Но все же фреймворки пишут....

Алексей, к слову, ты свой фреймворк тоже писал? Как минимум, по твоим выкладкам готовых компонентов и решений на любую тему могу предположить, что ты был где-то рядом :)

Iluha Companets
TCP

Почему? Пайпы, посмотри в FPC в пакетах fcl-process

Александр (Rouse_) Багель
Почему? Пайпы, посмотри в FPC в пакетах fcl-proces...

пайпы на основе TCP вполне могут существовать и речь не про IPC, а межмашинный обмен

Iluha Companets
пайпы на основе TCP вполне могут существовать и р...

Общение между процессами (а именно про это речь идет в изначальном сообщении) это IPC :) Через TCP тоже можно, но зачем?

Не страшно, я задаю вопросы за несколько часов до того, как дохожу до компа)

Vladimir Kustikov
Алексей, к слову, ты свой фреймворк тоже писал? Ка...

Конечно ;-). Я решал задачи. И в силу выраженного системного подхода изучал темы до уровня приемлемого решения. Не идеального, но достаточного для решения задачи. Как-то так, по скромному. 😁

Alexey Gavrilov
Конечно ;-). Я решал задачи. И в силу выраженного ...

👍 А осталось что-то оформленное в виде фреймворка для потомков?

Vladimir Kustikov
👍 А осталось что-то оформленное в виде фреймворка ...

Это настолько неблагодарное занятие...что...

Alexey Gavrilov
Это настолько неблагодарное занятие...что...

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

Serjone- Автор вопроса
Александр (Rouse_) Багель
Ты если про мою вот эту демку https://rouse.drkb.r...

Да, она. Сервер удалось поднять, подключается принимает, данные показывает. Правда, он данные не умеет передавать, если его клиент не дёргает. Клиента тоже сделал. Отправку данных прикрутил. Но у него другая проблема - он наоборот, входящих данных не видит, если сам их не запрашивает. Короче, сижу, прикручиваю отправку серверу и прием клиенту. Но у тебя хотябы понятно, что надо делать. В других примерах, что попадались, вообще жесть.

Serjone- Автор вопроса
Иван Алексеев
Когда кажется, что что-то сделано по-идотски идиот...

Бро, я некоторое количество лет сисадминил венду. Меня сложно убедить в том, что настройки, например, сети и домена, делались умными людьми и их просто не поняли.

Serjone
Да, она. Сервер удалось поднять, подключается прин...

Если нужно чтобы в обе стороны работало то второй сервер поднимается со стороны клиента, ибо тут вся концепция строго на вопрос-ответ построена со стороны клиента.

Vladimir Kustikov
Своих выгод в этом тоже масса, важно баланс найти....

Любой фреймворк накладывает ограничения. Чем более он заточен на конкретные задачи, тем больше эти ограничения. И ответственность большая. И ограничения тебя в решениях. Я потому и в 1С не пошел, хотя сам Сергей Нуралиев оффер выписал в 2006 😉. Испугался на тот момент ответственности, если по чесноку. Постоянно тащат на руководящие должности, а это другое, там политики много.

Serjone- Автор вопроса
Александр (Rouse_) Багель
Ты если про мою вот эту демку https://rouse.drkb.r...

А вот если я хочу в другой комп через пайп, то это как работает с точки зрения сети? Нужно порт открывать какой-то?

Serjone
А вот если я хочу в другой комп через пайп, то это...

Тебе же сказали. Pipe в одну сторону работает.

Serjone
А вот если я хочу в другой комп через пайп, то это...

Пайпы на 137, 139 и 445 -ых портах работают, полее подробней в доке поищи я уже на память не помню что за что отвечает

Александр (Rouse_) Багель
Пайпы на 137, 139 и 445 -ых портах работают, полее...

пайп - это общее понятие, сделать его можно через любой порт (а то, что ты перечислил, по памяти - вроде почтовые сервисы)

Iluha Companets
пайп - это общее понятие, сделать его можно через ...

я про виндовый пайп, там насколько я помню нет возможности настройки портов т.к. этим винда рулит, локально то они вообще через MMF работают а не на лупбэке

Serjone- Автор вопроса
Александр (Rouse_) Багель
Если нужно чтобы в обе стороны работало то второй ...

То есть это вот прям их обычная работа? Не тупо поднял сервер, и болтаешь с клиентами, а поднял, ждёшь запроса, ответил , получил подтверждение ответа и закрыл связь, в ожидании следующего запроса?

Serjone
То есть это вот прям их обычная работа? Не тупо по...

Не ну почему, технически можно сделать (наверное) чтобы и сервер был инициатором и клиент, но я не эксперементировал в этом направлении

Serjone
Бро, я некоторое количество лет сисадминил венду. ...

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

Serjone- Автор вопроса
Sergey Bodrov
Винда предназначена для бизнеса, чтобы трудоустрои...

Макоюзеры говорят, что в маках всё для людей. Там реально разработчики думали как сделать работу удобной. Я маками не пользовался, только айфон был некоторое время. Но я чото им верю всё равно. А венды и циски, походу разрабатывали люди с альтернативным мышлением.

Александр (Rouse_) Багель
я про виндовый пайп, там насколько я помню нет воз...

@Serjone123 Вот кстати да. Хотел упомянуть, но не счёл нужным. Pipe это старая абстракция/схема взаимодействия. Получается, по факту, что локально, это будет MMF, а по сети Socket.

После знакомства с их Objective-C я их понимаю, ибо лично я не готов настолько деградировать :)

Александр (Rouse_) Багель
После знакомства с их Objective-C я их понимаю, иб...

Даже FPC был вынужден ввести его синтаксис, чтобы обеспечить доступ к системе)

Serjone
То есть это вот прям их обычная работа? Не тупо по...

Тыж говорил что читал доку. Канал то ты создал какой, однонаправленный, двунаправленный? Именованный, не именованный?))

Александр (Rouse_) Багель
После знакомства с их Objective-C я их понимаю, иб...

Оно депрекатед. Они вернулись к истокам, относительно в Swift. Изначально, до ухода Джобса, там много на Pascal писали.

Александр (Rouse_) Багель
После знакомства с их Objective-C я их понимаю, иб...

Справедливости ради, в swift они исправились, вполне годно😀

Александр В
Справедливости ради, в swift они исправились, впол...

Это я в курсе, собственно когда руки дойдут я только его и рассматриваю для использования.

Александр (Rouse_) Багель
Это я в курсе, собственно когда руки дойдут я толь...

Но Лазарь все равно лучше, формошлепку в xcode шизофреник проектировал😄

Serjone- Автор вопроса
Iluha Companets
пайп - это общее понятие, сделать его можно через ...

SMB https://ru.wikipedia.org/wiki/Server_Message_Block SAMBA -- оно же под *nix

Serjone
Макоюзеры говорят, что в маках всё для людей. Там ...

Как то сел за мак и плевался блевался, какое же это убожество и калека.

Евгений
Как то сел за мак и плевался блевался, какое же эт...

потому что это гнилой кактус, но в красивой обёртке

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Oh sorry did you want it in Gunter's chains?
Martin Rys
15
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта