Ich habe mal eine Grundlegende Frage, weil ich dazu nichts gescheihtes bei Google gefunden habe:
Wie kann ich ein oder mehrere Ascii-Zeichen an ein laufendes Programm senden.
Z.B. wuerde ich gerne ein remote-tool entwickeln um einen server zu administrieren.
Wenn man ein Programm mit & startet am ende, läuft es im Hintergrund.
Gut, nur wie kann ich dann einen Tastdruck (besser waere das senden eines Strings) an das Programm senden?
Thx 4 help
Zeichen an Prozess senden
Re: Zeichen an Prozess senden
Das macht man normalerweise mit Interprozesskomunikation. Dinge nach dennen du suchen kannst wären Shared Memory, (Named) Pipes, Semaphoren. Ein Anfang ist vielleicht [1].SlasHi hat geschrieben:Ich habe mal eine Grundlegende Frage, weil ich dazu nichts gescheihtes bei Google gefunden habe:
Wie kann ich ein oder mehrere Ascii-Zeichen an ein laufendes Programm senden.
Sowas wird in aller Regel über TCP/IP Sockets gelöst. Der Server lauscht an einem Administationsport und ein Admintool connected sich als Klient dorthin und sendet dann halt Kommandos in irgendein spezifizierten Protokoll.SlasHi hat geschrieben: Z.B. wuerde ich gerne ein remote-tool entwickeln um einen server zu administrieren.
Nur wenn du definitiv sagen kannst das du den Prozess nur auf der selben Maschine "steuern" willst und unbedingt keine Sockets verwenden willst, würd ich dir obiges empfehlen. Dort Brauchst du auch ein 2. Programm welches in die vorher irgendwie definierte Pipe oder Memory reinschriebt und der Dienst müsste das dann halt irgendwie auswerten.
cu
[1] http://su2.info/uni/li/ipc_net_paper/node2.html
Zuletzt geändert von tylerD am 13.01.2004 08:48:14, insgesamt 1-mal geändert.
Da gibt es mehrere Möglichkeiten. Von einer habe ich Ahnung, von einer anderen habe
ich mal gelesen.
Wenn es sich um ein remote Tool handelt, würde ich auf die Klassische Client-Server
Struktur zurückgreifen. Einen Daemon der als Server auf der remote Seite fungiert, und
ein Client Programm, mit dem ich den Daemon steuere. Das ist relativ einfach über Socket
Programmierung zu erreichen. Dies kannst du auch so mit ziemlich allen Sprachen und
Script-Sprachen erreichen. Am einfachsten finde ich es mit Java oder Perl. Aber auch
mit C ist dies nicht so schwer.
Eine gute Einführung in die Socket-Programmierung mit C unter Linux findest du z.B. hier
http://www.linux-magazin.de/Artikel/aus ... tem10.html
Wenn sich das remote Programm auf dem gleichen lokalen Rechner befindet, kann man
glaube ich auch pipes benutzen, damit zwei Prozesse miteinander kommunizieren.
Aber da ich da nicht so viel Ahnung habe, sage ich dazu nichts.
Gruss
Christian
ich mal gelesen.
Wenn es sich um ein remote Tool handelt, würde ich auf die Klassische Client-Server
Struktur zurückgreifen. Einen Daemon der als Server auf der remote Seite fungiert, und
ein Client Programm, mit dem ich den Daemon steuere. Das ist relativ einfach über Socket
Programmierung zu erreichen. Dies kannst du auch so mit ziemlich allen Sprachen und
Script-Sprachen erreichen. Am einfachsten finde ich es mit Java oder Perl. Aber auch
mit C ist dies nicht so schwer.
Eine gute Einführung in die Socket-Programmierung mit C unter Linux findest du z.B. hier
http://www.linux-magazin.de/Artikel/aus ... tem10.html
Wenn sich das remote Programm auf dem gleichen lokalen Rechner befindet, kann man
glaube ich auch pipes benutzen, damit zwei Prozesse miteinander kommunizieren.
Aber da ich da nicht so viel Ahnung habe, sage ich dazu nichts.
Gruss
Christian
Mir fällt gerade eine ganz tolle Möglichkeit ein: man könnte dem Prozess die Daten bitweise senden; ein SIGUSR1 für eine 0 und SIGUSR2 für eine 1. Das wäre bestimmt effektiv.
Ich muss mal sofort das EPA anschreiben. Hat jemand gerade mal 50,000 ??
Ich muss mal sofort das EPA anschreiben. Hat jemand gerade mal 50,000 ??
Zuletzt geändert von Joghurt am 13.01.2004 13:02:38, insgesamt 1-mal geändert.
Hast du da vielleicht "Joke" Quotes vergessen ?Joghurt hat geschrieben:Mir fällt gerade eine ganz tolle Möglichkeit ein: man könnte dem Prozess die Daten bitweise senden; ein SIGUSR1 für eine 0 und SIGUSR2 für eine 1. Das wäre bestimmt effektiv.
Ich muss mal sofort das EPA anschreiben. Hat jemand gerade mal 50,000 ??
eagle
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams