powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / разговор двух процессов
25 сообщений из 31, страница 1 из 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
25 сообщений из 31, страница 1 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / разговор двух процессов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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