|
|
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#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 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
Frame RelayНу и сокеты есть только в оси с поддержкой сети. berkley sockets если и не является абсолютным стандартом сетевого api, то уж общепринятым точно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2005, 11:25 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
2 kolobok Доктор, почему меня все игнорируют ? Я хочу услышать ответы на свои вопросы и ИЗВИНЕНИЕ за необоснованный наезд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2005, 14:05 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
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) Если Вы хотите моих извенений - да хоть сто порций... Извините. Но к сожалению это не решит Ваших эээээээээээ не совсем корректных взглядов в данной области. с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2005, 15:26 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
!!! Аллилуййя !!! Я услышан ! Вот хоть тресни, не вижу в чем я оговорился. И какая такая фундаментальная огреха присутствует в моих взглядах ??? Меня правда это интересует, гораздо больше чем мерение пиписьками Не вижу чем моя "неправильная" терминология может повредить творческому процессу, тем более, что ей же пользуются признанные авторитеты (что в переводе, что в оригинале). Не могли бы Вы несколько подробнее расшифровать этот момент ? Видимо я туповат и не осознаю всей глубины моей глупости Сделайте доброе дело, помогите ее осознать плизззззз P.S. Что касается медленного старта, то это был ответ на то, что TCP ЛЕГКО надстроить над UDP. Извините, но я В КОРНЕ не согласен с этим утверждением. Если его надстраивать "ПРОСТО" то эффективность его работы будет .... не очень хорошей. На мой взгляд, именно такие заблуждения, а не терминологические закорючки могут помешать нормальной работе. P.P.S. Насколько я понимаю Вы кристалльшик, и работаете над реализацией сетевых протоколов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2005, 15:43 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
авторIP-сокеты является автороговоркой в плане сокращения соплей Термины UDP-сокет и TCP-сокет имеют полное право на существование. Нигде в RFC 793, ссылку на перевод которого Вы привели не утверждается обратное. На этом, сию замечательную дискуссию считаю закрытой Удачи ВАМ, Круглый ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2005, 17:26 |
|
||
|
разговор двух процессов
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)....P.P.S. Насколько я понимаю Вы кристалльшик, и работаете над реализацией сетевых протоколов ? одна из работ...под МК ваять. :) (ржу) а кристаллами называю и x86 и 8255 (к примеру) и 7406 :) Но мона и о высоком :) Кстати по поводу общепринятого. Клиент-серверными системами так же называют кому не лень и что ни попадя. И что ? Иногда приходиться немного и пообщаться... :) удачи Вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2005, 19:06 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2032844]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 372ms |

| 0 / 0 |
