powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / разговор двух процессов
31 сообщений из 31, показаны все 2 страниц
разговор двух процессов
    #33233365
k e k s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скажите простые способы как сделать, чтобы два независимых процесса на одном девайсе обменивались текстовой информацией между собой. СОМ решение применять нельзя.
У меня на ум приходят только два:
- 2 файла - один процесс пишет в первый из второго читает, второй наоборот
- сокеты

Есть еще варианты?
...
Рейтинг: 0 / 0
разговор двух процессов
    #33233477
roman10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для этого служат средства IPC (interprocess communications). В MSDN подробно все написано. В числе прочего доступны: разделяемая память, всякие pipes, mailslots и еще много чего.
...
Рейтинг: 0 / 0
разговор двух процессов
    #33233507
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msdn хорошо, но не переносимо :-)

если нужен linux или bsd какой, или что совсем плохо, и линукс и винды и черт в ступе, то только файл и остается :-)
а так я бы выбрал сокеты :-) в большинстве ос работают совершенно одинаково
...
Рейтинг: 0 / 0
разговор двух процессов
    #33233622
k e k s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
..речь идет о решении приближенном к универсальному для разных платформ. Чисто виндосовские фишки использовать не могу.
...
Рейтинг: 0 / 0
разговор двух процессов
    #33233681
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k e k s..речь идет о решении приближенном к универсальному для разных платформ. Чисто виндосовские фишки использовать не могу.

В любом случае использовать сырые сокеты нерационально. Существуют разные виды портируемых RPC библиотек, в самом простом случае чего-то типа этого.

http://www.codeproject.com/threads/RMI_For_Cpp.asp
...
Рейтинг: 0 / 0
разговор двух процессов
    #33233735
roman10
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Unix полно своих заморочек (достаточно погуглить ). Не уверен, впрочем, что все это дело ограничивается ANSI С, поэтому универсального решения для всех платформ может и не быть. Как вариант, можно добавать в вашу прогу отдельный слой, который для каждой платформы будет своим.

Что касается сокетов, это тоже вариант, но далеко не самый быстрый (хотя, если не ошибаюсь, сервер XFree общается со своими клиентами именно по TCP, что видимо и объясняет его тормоза :)).
...
Рейтинг: 0 / 0
разговор двух процессов
    #33233994
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k e k sскажите простые способы как сделать, чтобы два независимых процесса на одном девайсе обменивались текстовой информацией между собой. СОМ решение применять нельзя.
У меня на ум приходят только два:
- 2 файла - один процесс пишет в первый из второго читает, второй наоборот
- сокеты

Есть еще варианты?

Если речь идёт о своей МК аппаратуре (например соединить два Atmela). То паралельная передача данных с использованием механизма прерывания.

Если это частный случай и речь идёт о писюках - то любые разделяемые меж процессорами обьекты системы.


с уважением
(круглый)
...
Рейтинг: 0 / 0
разговор двух процессов
    #33234004
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0Если речь идёт о своей.........


Тьху ты...
Приношу извинения...Глаза уже не видят..слепой...
Шаред память - вроде катит как оптимум... под форточками...


(круглый)
...
Рейтинг: 0 / 0
разговор двух процессов
    #33234382
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k e k s..речь идет о решении приближенном к универсальному для разных платформ. Чисто виндосовские фишки использовать не могу.

Придумать универсальное решение для всех платформ сложно,
потому-как способы межпроцессного взаимодействия - разные.
Но если за концепцию взять *nix, то я бы предложил unix-сокеты
(не путать с TCP!) или канальные файлы (pipe).

Для windows - это может быть memory-mapped files или именованный
канал.
...
Рейтинг: 0 / 0
разговор двух процессов
    #33234408
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Unix сокеты на Windows угу угу
Чем IP-сокеты не угодили (не путать с TCP)
...
Рейтинг: 0 / 0
разговор двух процессов
    #33234756
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Unix сокеты на Windows угу угу
Чем IP-сокеты не угодили (не путать с TCP)

Я всего-лишь предложил реализацию "слоя взаимодействия".
Читайте внимательно пост Романа.
...
Рейтинг: 0 / 0
разговор двух процессов
    #33235121
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Unix сокеты на Windows угу угу
Чем IP-сокеты не угодили (не путать с TCP)
По виду вроде взрослый дядя, а такую <censored> говорите. Поверх IP есть TCP либо UDP. Есть ищо служебныые вещи типа ICMP или IGMP но их не трогаем.
Какой из них? Если не TCP то наверно UDP. Но UDP не гарантирует доставку пакета и не ориентирован на устойчивое соединение. RPC поверх него можно делать, но c ограничениями типа невозможности callback вызовов. Его используют для broadcast-сообщений либо когда накладные расходы действительно очень важны - например для динамичных реалтаймовых игр типа Starcraft. Для остальных случаев TCP вполне пригоден.
И чего по Вашему не так с виндовой организацией TCP стека в win32? Она является copy/paste c исходников freeBSD, так что вполне пристойна.
...
Рейтинг: 0 / 0
разговор двух процессов
    #33235395
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это была ирония

1. IP-сокеты (что TCP, что UDP) являются идеально переносимыми между Windows и Unix. В Windows добавляются WSA-заморочки, но это мелочь, в целом все весьма переносимо. Чего не скажешь про Unix-сокеты, которые на Windows отсутствуют как класс.

2. Есть масса задач в которых UDP сокеты предпочтительнее. Взять хоть тот-же RADIUS одну из реализаций которого я в настоящий момент пишу
...
Рейтинг: 0 / 0
разговор двух процессов
    #33235401
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНо если за концепцию взять *nix, то я бы предложил unix-сокеты
(не путать с TCP!) или канальные файлы (pipe).


А приступ здоровой иронии у меня вызвал этот пост.
Так на всякий случай, для непонятливых :)
...
Рейтинг: 0 / 0
разговор двух процессов
    #33235522
Frame Relay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему бы не использовать разделяемую память? Она и под Форточки, и под Никсы есть. Названия функций, естественно, различаются — но принцип одинаков, и переносить между платформами несложно. Самый быстрый способ обмена (действует только локально, но по условию задачи так и есть).
Можно также именованные каналы (named pipes). Тоже переносимо.
...
Рейтинг: 0 / 0
разговор двух процессов
    #33235758
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)IP-сокеты (что TCP, что UDP) являются ............. которых UDP сокеты ........

Просветите пожалуйста - что такое "UDP сокет" ? Или там "TCP сокет" ? Может быть соект открытый в данном режиме ?

а то всё в одну кучу...и механизацию (сокеты) и протоколы(TCP, UDP и т.д.)...Хотя с другой стороны аспекты реализации взаимодействия с протоколами рекомендованы ими же...

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

вы бы енто... поаккуратнее словами бы...

с уважением
(круглый)
ЗЫ
Просто резануло слух...
...
Рейтинг: 0 / 0
разговор двух процессов
    #33235784
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AF_INET, SOCK_STREAM
AF_INET, SOCK_DGRAM
...
Рейтинг: 0 / 0
разговор двух процессов
    #33235803
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0А написать свой слой аля TCP и нахлобучить его на сокет открытый в режиме UDP - проблем не будет больших...


Будут. TCP это совсем не так просто
Поаккуратнее бы с идеями, просто резануло слух
...
Рейтинг: 0 / 0
разговор двух процессов
    #33235821
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Будут. TCP это совсем не так просто Поаккуратнее бы с идеями, просто резануло слух


Никто и не обещал, что просто. Это не идея. Это код.Рабочий. На МК, азм, все сетевые слои...вплоть до вэба...


удачи Вам
(круглый)
...
Рейтинг: 0 / 0
разговор двух процессов
    #33235858
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алгоритм Нагля тоже реализуется ?
...
Рейтинг: 0 / 0
разговор двух процессов
    #33237217
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ауууу Где Вы ???

Так как у Вас с реализацией алгоритма Нагля ? Про алгоритм медленного старта не спрашиваю, наверняка он у Вас реализован. Не представляю, как реализация TCP могла бы обходиться без него

Кстати, вчера не счел за труд проконсультироваться с Стивенсом . Большего авторитета в части программирования сокетов я вряд-ли смогу назвать (ну разьве-что Вы возможно). Так вот, он ВОВСЮ применяет термины сокет UDP, сокет TCP и даже, о ужас, RAW сокет.

Мне правда очень жаль, что Вы не сможете наставить его на путь истинный в плане единственно верной ТЕРМИНОЛОГИИ

Всего хорошего
...
Рейтинг: 0 / 0
разговор двух процессов
    #33237490
k e k s
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так все же, что же более универсально? конечно можно все директивами разделить, но нужна простая поддержка в будущем.... как я понял остаются только файлы?
если разделяемая память - куда копать для универсального использованиия? речь идет о легко загруженном сервере - 1 - 2 секунда - событие...
...
Рейтинг: 0 / 0
разговор двух процессов
    #33237608
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сокеты УНИВЕРСАЛЬНО. Разделяемая память непереносима, как и все остальное, что сейчас приходит в голову.
...
Рейтинг: 0 / 0
разговор двух процессов
    #33238174
Frame Relay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разделяемая память под Форточки — MSDN или Platform SDK (System Services->File Services->File Systems->File Management->File Mapping).
Разделяемая память под Никсы — Стивенс "Взаимодействие процессов" или "Межпроцессное взаимодействие" (точно не помню).
А почему непереносимо? Если что-то иное, чем Вынь или Никсы — возможно. Ну и сокеты есть только в оси с поддержкой сети.
...
Рейтинг: 0 / 0
разговор двух процессов
    #33238335
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Frame RelayНу и сокеты есть только в оси с поддержкой сети.
berkley sockets если и не является абсолютным стандартом сетевого api, то уж общепринятым точно.
...
Рейтинг: 0 / 0
разговор двух процессов
    #33238940
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 kolobok

Доктор, почему меня все игнорируют ? Я хочу услышать ответы на свои вопросы и ИЗВИНЕНИЕ за необоснованный наезд
...
Рейтинг: 0 / 0
разговор двух процессов
    #33239186
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)...хочу услышать ответы на свои вопросы и ИЗВИНЕНИЕ за необоснованный наезд

0) про НЕ игнорировать... а смысл ? Ну начнём меряться пиписьками у кого больше. А это Вам зачем ?
1) про медленные старты...про протоколы...про алгоритмы лучше вот тут...почитайте... (перевод на русский, стандартов)

http://] www.helloworld.ru/texts/comp/inet/ip/tcpip/tcpspec.html

цитата..
"Интерфейс между прикладным процессом и протоколом TCP мы поясняем с приемлемой детализацией. Этот интерфейс состоит из набора вызовов, которые похожи на вызовы операционной системы, предоставляемые прикладному процессу для управления файлами. Например, в этом случае имеются вызовы для открытия и закрытия соединений, для отправки и получения данных на установленных соединениях. Предполагается также, что протокол TCP сможет асинхронно взаимодействовать с прикладными программами. Хотя разработчикам TCP протокола и предоставлена значительная свобода в создании интерфейсов, которые соответствуют свойствам конкретной операционной системы, все же от любой приемлемой реализации требуются некие обязательные минимальные функции интерфейса между протоколом TCP и пользователем. "

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

"IP-сокеты (что TCP, что UDP) являются идеально переносимыми между Windows и Unix. ....Есть масса задач в которых UDP сокеты предпочтительнее."

являеться либо оговоркой в плане сокращения соплей. Либо полностью безграмотны. Сорьки, если обидел. Ещё раз скажу, что реализовать всё что выше IP по стэку, можно и на уровне UDP. Сокеты тут вообще не при чём... Уровень юзанья стэка - да, имеет смысл обсуждать.

3) Если Вы хотите моих извенений - да хоть сто порций... Извините. Но к сожалению это не решит Ваших эээээээээээ не совсем корректных взглядов в данной области.


с уважением
(круглый)
...
Рейтинг: 0 / 0
разговор двух процессов
    #33239234
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
!!! Аллилуййя !!! Я услышан !

Вот хоть тресни, не вижу в чем я оговорился. И какая такая фундаментальная огреха присутствует в моих взглядах ??? Меня правда это интересует, гораздо больше чем мерение пиписьками Не вижу чем моя "неправильная" терминология может повредить творческому процессу, тем более, что ей же пользуются признанные авторитеты (что в переводе, что в оригинале).

Не могли бы Вы несколько подробнее расшифровать этот момент ? Видимо я туповат и не осознаю всей глубины моей глупости Сделайте доброе дело, помогите ее осознать плизззззз

P.S. Что касается медленного старта, то это был ответ на то, что TCP ЛЕГКО надстроить над UDP. Извините, но я В КОРНЕ не согласен с этим утверждением. Если его надстраивать "ПРОСТО" то эффективность его работы будет .... не очень хорошей. На мой взгляд, именно такие заблуждения, а не терминологические закорючки могут помешать нормальной работе.

P.P.S. Насколько я понимаю Вы кристалльшик, и работаете над реализацией сетевых протоколов ?
...
Рейтинг: 0 / 0
разговор двух процессов
    #33239511
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторIP-сокеты является автороговоркой в плане сокращения соплей Термины UDP-сокет и TCP-сокет имеют полное право на существование. Нигде в RFC 793, ссылку на перевод которого Вы привели не утверждается обратное.

На этом, сию замечательную дискуссию считаю закрытой

Удачи ВАМ, Круглый
...
Рейтинг: 0 / 0
разговор двух процессов
    #33239764
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)....P.P.S. Насколько я понимаю Вы кристалльшик, и работаете над реализацией сетевых протоколов ?


одна из работ...под МК ваять. :) (ржу) а кристаллами называю и x86 и 8255 (к примеру) и 7406 :)

Но мона и о высоком :)
Кстати по поводу общепринятого. Клиент-серверными системами так же называют кому не лень и что ни попадя. И что ? Иногда приходиться немного и пообщаться... :)


удачи Вам
(круглый)
...
Рейтинг: 0 / 0
разговор двух процессов
    #33240153
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Терминология У меня напарник микроконтроллерами занимается
...
Рейтинг: 0 / 0
31 сообщений из 31, показаны все 2 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / разговор двух процессов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]