Einfache Interprozesskommunikation

Ich suche nach einem einfachen Weg, um Nachrichten von einem Prozess zu übergeben (Perl-Skript, kurzlebig) zu einem anderen (Python-Skript, langlebig) – beide Prozesse lokal auf dem gleichen Rechner. Ich habe einige Recherchen gemacht, aber was ich gefunden habe, war entweder über meinen Kopf oder schien unnötig komplex zu sein – ich habe mich ein bisschen verloren und verwirrt.

Ich stelle mir ein minimales Beispiel etwa wie folgt vor:

# listener.py class Listener: def __init__(self, port) self.port = port def on_message(self, msg): print "%s: %s" % (timestamp, msg) recipient = Listener(1234) # sender.pl sub send_message { my ($msg, $port) = @_; # ... } send_message("hello world", 1234); 

Irgendwelche Hinweise darauf, wie man es löst und / oder wo man das lesen kann, wäre sehr dankbar!

3 Solutions collect form web for “Einfache Interprozesskommunikation”

Im Allgemeinen interessieren Sie sich für Steckdosen. Ein guter Ort, um nur die benötigten groben Informationen zu erhalten, ist die Dokumentation von IO :: Socket :: INET oder mehr Basic Socket-Sachen in Perl von perldoc perlipc

Es stellt sich heraus, dass Interprozess-Kommunikation ist, während auf der Oberfläche einfach, tatsächlich voller Komplikationen. Was auch immer jemand hier in Bezug auf eine vereinfachte Antwort erzählt, denkst immer daran, dass es wahrscheinlich viele Einschränkungen gibt, die unsagend bleiben.

Jetzt mit diesem Haftungsausschluss aus dem Weg, ich behaupte, dass, was Sie wahrscheinlich wollen, sind Nachrichten Warteschlangen. Dies basiert auf der Tatsache, dass Sie keine IP-Adresse in Ihrem Beispiel-API enthalten. Wenn Sie über Maschinen gehen müssen, wollen Sie Steckdosen. Allerdings denke ich, dass Sie Nachrichtenschlangen finden, um einfacher zu verstehen, wenn Sie mit der Tatsache umgehen können, dass dies nur für die Kommunikation mit Prozessen auf der gleichen Maschine ist.

Ein guter Ausgangspunkt für Perl ist:
http://perldoc.perl.org/IPC/Msg.html

Für python, das scheint zu erklären (ignorieren die anderen Arten von ipc wie Semaphoren):
http://semanchuk.com/philip/sysv_ipc/

Und für powered-up-Kommunikation im gleichen Stil wie Sockel, betrachten Blick auf 0MQ. Es kann verschiedene Kommunikationstechnologien nutzen, je nachdem, wo sich deine beiden Apps befinden, und selbst für lokale Prozesse ist es sehr einfach zu bedienen und löst die Probleme für dich.

http://zeromq.org

  • Machen Sie alle neuen Verzeichnisse haben 777 Berechtigungen
  • SOCKS in C / C ++ oder eine andere Sprache?
  • Wie kann ich eindeutige Begriffe in einer Klartextdatei unempfindlich zählen?
  • Python und / oder Perl VS bash
  • Regex Java Endpunkt Anmerkungen
  • BLAST (bl2seq) ohne Sequenzdateien zu erstellen
  • Extrahieren von bestimmten Daten aus einer Datei und Schreiben in eine andere Datei
  • Extrahieren von Spalten aus Textdatei mit Perl-Einzeiler: ähnlich wie Unix-Schnitt
  • Wie bekomme ich einen Teil des Regex-Spiels als Variable in Python?
  • Scripting HTTP effizienter
  • Wie kann ich spezielle Umgebungen für verschiedene Perl-Anwendungen installieren?
  • Python ist die beste Programmiersprache der Welt.