Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Dwa programy, podprogramy w różnych językach współpracujące ze sobą

Bruum 27 Sie 2011 23:36 1623 7
  • #1 27 Sie 2011 23:36
    Bruum
    Poziom 23  

    Witam!
    Chciałbym, potrzebuję, zrobić coś jak w tytule. Jeden program, podprogram, proces czy inny byt, napisany w "natywnym" c++ zajmuje się komunikacją z kilkoma rs-ami, musi się to odbywać szybko, niemal synchronicznie, bez zbytnich opóźnień. Działa w tle, jak rodzaj serwera. Komunikuje się z nim aplikacja stanowiąca na początek interfejs użytkownika, obrazuje dane odebrane i pobiera dane od użytkownika i przesyła do tego ala serwera. Ta aplikacja dla łatwości w VB. Win xp vb i c++ visual 2010 expres. Jak to ugryźć, jakie zagadnienia poznać?

    0 7
  • #2 27 Sie 2011 23:47
    McMonster
    Poziom 32  

    Proponuję na początek poczytać o gniazdach (sockets).

    0
  • #3 27 Sie 2011 23:48
    beluosus
    Poziom 25  

    Trzy słowa: inter process communication.

    0
  • #4 28 Sie 2011 09:54
    Dżyszla
    Poziom 42  

    Pod Windowsem mozesz śmiało korzystać z komunikatów (messages), z pamięci współdzielonej... Możesz też stworzyć typowe rozwiązanie klient-serwer TCP/IP. Możesz wreszcie - trochę nieelegancko - wymieniać dane za pośrednictwem plików. Rozwiązań jest co najmniej kilka.

    Jeśli nie chcesz wykorzystywać za nadto WinAPI i jego mechanizmów wymiany danych między procesami, to chyba najłatwiej będzie wykorzystać aplikację klient-serwer w protokole sieciowym. Jedyna wada - bodajże użytkownik musi mieć kartę sieciową, mimo komunikacji po localhost.

    0
  • #5 28 Sie 2011 10:36
    Bruum
    Poziom 23  

    Dzięki Panowie!
    Zaproponujcie może literaturę po naszemu, w której o tym przeczytam, żeby każdym przecinkiem głowy nie zawracać.

    0
  • #6 28 Sie 2011 11:29
    beluosus
    Poziom 25  

    Nikt nie wymienił nic więcej co ja zawarłem w 3ch słowach. Obawiam się, że po polsku niewiele znajdziesz wartościowych rzeczy o IPC, wejdź na wiki ( http://pl.wikipedia.org/wiki/Komunikacja_międzyprocesowa ) i szukaj o każdym z tych tematów osobno. Niestety bez znajomości angielskiego nie da się daleko dojść w świecie programowania, 99.9% dokumentacji jest po angielsku.

    0
  • #7 31 Sie 2011 22:54
    Bruum
    Poziom 23  

    Witam!
    Jak się zabrać do zagadnienia pamięci współdzielonej?
    Idealne byłoby coś takiego-aplikacja A tworzy tablicę dwóch int-ów, albo inny twór o 64rech bitach. Uzyskuje jej adres i przekazuje go aplikacji B, która te 64 bity czyta i wykorzystuje. Jak przekazać prosto z aplikacji do aplikacji adresy? W C wskaźnik to podstawa, a jak w C#?

    0
  • #8 31 Sie 2011 23:25
    Slash1985
    Poziom 2  

    Jeżeli używasz biblioteki Qt:
    http://doc.qt.nokia.com/latest/ipc.html

    Dużo artykułów na ten temat masz tutaj:
    http://www.codeproject.com/KB/threads/

    Jeżeli masz możliwość uzycia Linuksa, to preferuje go. Zrobienie tam IPC jest prostotą:
    http://wazniak.mimuw.edu.pl/images/8/82/Sop_10_lab.pdf
    http://wazniak.mimuw.edu.pl/images/7/72/Sop_11_lab.pdf
    http://wazniak.mimuw.edu.pl/images/e/e1/Sop_12_lab.pdf

    0