Обмен данными между процессами

Обсуждение в разделе «С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby», начал(-а) Chrome~, 17.08.2010.

  1. Chrome~

    Chrome~ Elder - Старейшина

    Регистрация:
    13.12.2008
    Сообщения:
    936
    Одобрения:
    162
    Репутация:
    27
    Привет.
    Подскажите способ, при котором можно реализовать обмен данными между процессами, запущенными на одном компьютере. Размер данных может быть разным. FileMapping мне не очень подходит, так как нельзя менять размер отображаемого в памяти файла. Вариант реализации с помощью сокетов хорош, но меня не устраивает.

    Как можно эффективно решить данную задачу?
     
  2. Redeemer

    Redeemer Member

    Регистрация:
    3.07.2010
    Сообщения:
    203
    Одобрения:
    24
    Репутация:
    1
    Пайпы?
     
    Это одобряет 1 пользователь.
  3. Chrome~

    Chrome~ Elder - Старейшина

    Регистрация:
    13.12.2008
    Сообщения:
    936
    Одобрения:
    162
    Репутация:
    27
    Слыхал о пайпах, но не нашел нормальной документации еще по работе с ними. Я думаю, что возможно должен использовать именно пайпы.
     
  4. Redeemer

    Redeemer Member

    Регистрация:
    3.07.2010
    Сообщения:
    203
    Одобрения:
    24
    Репутация:
    1
    Ну если на английском то вот

    На русском довольно неплохо написано здесь
     
    #4 Redeemer, 17.08.2010
    В последний раз редактировалось модератором: 18.08.2010
  5. flacs

    flacs Member

    Регистрация:
    28.01.2009
    Сообщения:
    81
    Одобрения:
    31
    Репутация:
    6
    ну Windows сообщениями через хендлы, правда GUI требуется( если интересует могу выложить исходник на делпфи
     
    Это одобряет 1 пользователь.
  6. Chrome~

    Chrome~ Elder - Старейшина

    Регистрация:
    13.12.2008
    Сообщения:
    936
    Одобрения:
    162
    Репутация:
    27
    Спасибо всем за помощь, буду разбираться с пайпами. О методе работы с помощью Windows сообщений знаком. Но все равно, flacs, если у тебя будет свободное время, - выложи свой пример, буду благодарен.
     
  7. flacs

    flacs Member

    Регистрация:
    28.01.2009
    Сообщения:
    81
    Одобрения:
    31
    Репутация:
    6
    Простейший пример работы с WM_COPYDATA, при желании можно создать невидимое окно средствами winapi и с ним работать

    http://www.sendspace.com/file/g6fb8h
     
  8. Redeemer

    Redeemer Member

    Регистрация:
    3.07.2010
    Сообщения:
    203
    Одобрения:
    24
    Репутация:
    1
    А если у него в приложении нет GUI?
     
  9. cheater_man

    cheater_man Member

    Регистрация:
    13.11.2009
    Сообщения:
    651
    Одобрения:
    44
    Репутация:
    7
    очень интересная штука MPI
     
  10. slesh

    slesh Elder - Старейшина

    Регистрация:
    5.03.2007
    Сообщения:
    2 702
    Одобрения:
    1 224
    Репутация:
    455
    всё зависит от размера данных. можно и меилслоты юзать.
    также зависит от того с какой скоростью данные должны передаваться и быть реакция на это. механизмов много.