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

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Chrome~, 17 Aug 2010.

  1. Chrome~

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

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Привет.
    Подскажите способ, при котором можно реализовать обмен данными между процессами, запущенными на одном компьютере. Размер данных может быть разным. FileMapping мне не очень подходит, так как нельзя менять размер отображаемого в памяти файла. Вариант реализации с помощью сокетов хорош, но меня не устраивает.

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

    Redeemer Member

    Joined:
    3 Jul 2010
    Messages:
    203
    Likes Received:
    24
    Reputations:
    1
    Пайпы?
     
    1 person likes this.
  3. Chrome~

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

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Слыхал о пайпах, но не нашел нормальной документации еще по работе с ними. Я думаю, что возможно должен использовать именно пайпы.
     
  4. Redeemer

    Redeemer Member

    Joined:
    3 Jul 2010
    Messages:
    203
    Likes Received:
    24
    Reputations:
    1
    Ну если на английском то вот

    На русском довольно неплохо написано здесь
     
    #4 Redeemer, 17 Aug 2010
    Last edited by a moderator: 18 Aug 2010
  5. flacs

    flacs Member

    Joined:
    28 Jan 2009
    Messages:
    81
    Likes Received:
    31
    Reputations:
    6
    ну Windows сообщениями через хендлы, правда GUI требуется( если интересует могу выложить исходник на делпфи
     
    1 person likes this.
  6. Chrome~

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

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    Спасибо всем за помощь, буду разбираться с пайпами. О методе работы с помощью Windows сообщений знаком. Но все равно, flacs, если у тебя будет свободное время, - выложи свой пример, буду благодарен.
     
  7. flacs

    flacs Member

    Joined:
    28 Jan 2009
    Messages:
    81
    Likes Received:
    31
    Reputations:
    6
    Простейший пример работы с WM_COPYDATA, при желании можно создать невидимое окно средствами winapi и с ним работать

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

    Redeemer Member

    Joined:
    3 Jul 2010
    Messages:
    203
    Likes Received:
    24
    Reputations:
    1
    А если у него в приложении нет GUI?
     
  9. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    очень интересная штука MPI
     
  10. slesh

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

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    всё зависит от размера данных. можно и меилслоты юзать.
    также зависит от того с какой скоростью данные должны передаваться и быть реакция на это. механизмов много.