|
|
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
скажите простые способы как сделать, чтобы два независимых процесса на одном девайсе обменивались текстовой информацией между собой. СОМ решение применять нельзя. У меня на ум приходят только два: - 2 файла - один процесс пишет в первый из второго читает, второй наоборот - сокеты Есть еще варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 10:40 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
Для этого служат средства IPC (interprocess communications). В MSDN подробно все написано. В числе прочего доступны: разделяемая память, всякие pipes, mailslots и еще много чего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 11:06 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
msdn хорошо, но не переносимо :-) если нужен linux или bsd какой, или что совсем плохо, и линукс и винды и черт в ступе, то только файл и остается :-) а так я бы выбрал сокеты :-) в большинстве ос работают совершенно одинаково ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 11:14 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
..речь идет о решении приближенном к универсальному для разных платформ. Чисто виндосовские фишки использовать не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 11:45 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
k e k s..речь идет о решении приближенном к универсальному для разных платформ. Чисто виндосовские фишки использовать не могу. В любом случае использовать сырые сокеты нерационально. Существуют разные виды портируемых RPC библиотек, в самом простом случае чего-то типа этого. http://www.codeproject.com/threads/RMI_For_Cpp.asp ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 11:59 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
В Unix полно своих заморочек (достаточно погуглить ). Не уверен, впрочем, что все это дело ограничивается ANSI С, поэтому универсального решения для всех платформ может и не быть. Как вариант, можно добавать в вашу прогу отдельный слой, который для каждой платформы будет своим. Что касается сокетов, это тоже вариант, но далеко не самый быстрый (хотя, если не ошибаюсь, сервер XFree общается со своими клиентами именно по TCP, что видимо и объясняет его тормоза :)). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 12:09 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
k e k sскажите простые способы как сделать, чтобы два независимых процесса на одном девайсе обменивались текстовой информацией между собой. СОМ решение применять нельзя. У меня на ум приходят только два: - 2 файла - один процесс пишет в первый из второго читает, второй наоборот - сокеты Есть еще варианты? Если речь идёт о своей МК аппаратуре (например соединить два Atmela). То паралельная передача данных с использованием механизма прерывания. Если это частный случай и речь идёт о писюках - то любые разделяемые меж процессорами обьекты системы. с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 13:11 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
kolobok0Если речь идёт о своей......... Тьху ты... Приношу извинения...Глаза уже не видят..слепой... Шаред память - вроде катит как оптимум... под форточками... (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 13:13 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
k e k s..речь идет о решении приближенном к универсальному для разных платформ. Чисто виндосовские фишки использовать не могу. Придумать универсальное решение для всех платформ сложно, потому-как способы межпроцессного взаимодействия - разные. Но если за концепцию взять *nix, то я бы предложил unix-сокеты (не путать с TCP!) или канальные файлы (pipe). Для windows - это может быть memory-mapped files или именованный канал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 15:28 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
Unix сокеты на Windows угу угу Чем IP-сокеты не угодили (не путать с TCP) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 15:36 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Unix сокеты на Windows угу угу Чем IP-сокеты не угодили (не путать с TCP) Я всего-лишь предложил реализацию "слоя взаимодействия". Читайте внимательно пост Романа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 17:38 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
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, так что вполне пристойна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2005, 23:41 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
Это была ирония 1. IP-сокеты (что TCP, что UDP) являются идеально переносимыми между Windows и Unix. В Windows добавляются WSA-заморочки, но это мелочь, в целом все весьма переносимо. Чего не скажешь про Unix-сокеты, которые на Windows отсутствуют как класс. 2. Есть масса задач в которых UDP сокеты предпочтительнее. Взять хоть тот-же RADIUS одну из реализаций которого я в настоящий момент пишу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 09:43 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
maytonНо если за концепцию взять *nix, то я бы предложил unix-сокеты (не путать с TCP!) или канальные файлы (pipe). А приступ здоровой иронии у меня вызвал этот пост. Так на всякий случай, для непонятливых :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 09:46 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
А почему бы не использовать разделяемую память? Она и под Форточки, и под Никсы есть. Названия функций, естественно, различаются — но принцип одинаков, и переносить между платформами несложно. Самый быстрый способ обмена (действует только локально, но по условию задачи так и есть). Можно также именованные каналы (named pipes). Тоже переносимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 10:38 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)IP-сокеты (что TCP, что UDP) являются ............. которых UDP сокеты ........ Просветите пожалуйста - что такое "UDP сокет" ? Или там "TCP сокет" ? Может быть соект открытый в данном режиме ? а то всё в одну кучу...и механизацию (сокеты) и протоколы(TCP, UDP и т.д.)...Хотя с другой стороны аспекты реализации взаимодействия с протоколами рекомендованы ими же... А написать свой слой аля TCP и нахлобучить его на сокет открытый в режиме UDP - проблем не будет больших... вы бы енто... поаккуратнее словами бы... с уважением (круглый) ЗЫ Просто резануло слух... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 11:57 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
AF_INET, SOCK_STREAM AF_INET, SOCK_DGRAM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 12:07 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
kolobok0А написать свой слой аля TCP и нахлобучить его на сокет открытый в режиме UDP - проблем не будет больших... Будут. TCP это совсем не так просто Поаккуратнее бы с идеями, просто резануло слух ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 12:12 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Будут. TCP это совсем не так просто Поаккуратнее бы с идеями, просто резануло слух Никто и не обещал, что просто. Это не идея. Это код.Рабочий. На МК, азм, все сетевые слои...вплоть до вэба... удачи Вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 12:19 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
Алгоритм Нагля тоже реализуется ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2005, 12:28 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
Ауууу Где Вы ??? Так как у Вас с реализацией алгоритма Нагля ? Про алгоритм медленного старта не спрашиваю, наверняка он у Вас реализован. Не представляю, как реализация TCP могла бы обходиться без него Кстати, вчера не счел за труд проконсультироваться с Стивенсом . Большего авторитета в части программирования сокетов я вряд-ли смогу назвать (ну разьве-что Вы возможно). Так вот, он ВОВСЮ применяет термины сокет UDP, сокет TCP и даже, о ужас, RAW сокет. Мне правда очень жаль, что Вы не сможете наставить его на путь истинный в плане единственно верной ТЕРМИНОЛОГИИ Всего хорошего ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2005, 08:15 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
так все же, что же более универсально? конечно можно все директивами разделить, но нужна простая поддержка в будущем.... как я понял остаются только файлы? если разделяемая память - куда копать для универсального использованиия? речь идет о легко загруженном сервере - 1 - 2 секунда - событие... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2005, 20:52 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
Сокеты УНИВЕРСАЛЬНО. Разделяемая память непереносима, как и все остальное, что сейчас приходит в голову. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2005, 09:23 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
Разделяемая память под Форточки — MSDN или Platform SDK (System Services->File Services->File Systems->File Management->File Mapping). Разделяемая память под Никсы — Стивенс "Взаимодействие процессов" или "Межпроцессное взаимодействие" (точно не помню). А почему непереносимо? Если что-то иное, чем Вынь или Никсы — возможно. Ну и сокеты есть только в оси с поддержкой сети. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2005, 10:33 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33233477&tid=2032844]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
61ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 347ms |

| 0 / 0 |
