Crossplatform Datenkommunikation zwischen Programmen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Bisonte
Beiträge: 2430
Registriert: 01.04.2007 20:18

Crossplatform Datenkommunikation zwischen Programmen

Beitrag von Bisonte »

Hallo.

Ich bin dabei mir ein IDE Tool zu bauen. Dabei stosse ich auf ein kleines Problem.

Die Enviroment Variablen sind nur beim aufrufen des externen Tools aktuell.
Das Tool soll allerdings im Hintergrund weiterlaufen. Daher wollte ich einen kleinen "Starter"
machen, der die ENV Variablen an das Hauptprogramm übergibt.

Nun das Problem : Der Starter soll die Daten an das Tool senden, und zwar so, dass es auf
allen PB unterstützten OS (PB5.70) läuft.

Der Starter sollte auch klein in der Filegröße sein, weil er ja "schnell" geladen werden soll.
(Auch auf langsamen "Devices" wie in Laptops oder Tablets).

Wie stelle ich das am besten an ?

P.S.: Mit meiner jetzigen "Starter" - Lösung müsste ich nur ein Signal senden, damit das Tool eine Datei einliest...
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Crossplatform Datenkommunikation zwischen Programmen

Beitrag von RSBasic »

Nur mit nativen PB-Funktionen wird es schwierig. Das einzige wäre, Daten in eine Textdatei zu speichern und das andere Programm schaut stets, ob die Datei geändert wurde und wenn ja, dann liest er die Daten.
Aber diese Vorgehensweise ist eher suboptimal.
Besser ist es, wenn man Daten direkt ohne über Umwege und ohne Workaround an einen Prozess schickt.

Wenn du für Windows, Linux und MacOS (falls notwendig) jeweils die API-Funktion nutzt, dann hast du ja auch eine Crossplatform-Lösung.

Für Windows:
https://www.rsbasic.de/aktualisierung/w ... mserver.pb
https://www.rsbasic.de/aktualisierung/w ... mclient.pb

Für Linux und MacOS gibt es bestimmt sowas auch. Da meldet sich ein Linux-User wie Programie bestimmt.

Ansonsten gibt es auch Shared Memory.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
mk-soft
Beiträge: 3701
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Crossplatform Datenkommunikation zwischen Programmen

Beitrag von mk-soft »

Windows Only...

Wenn du das Handle vom Fenster hast, kannst du eine User message an das Fenster senden... #WM_USER + eigene Nummer
Zuletzt geändert von mk-soft am 26.02.2019 10:44, insgesamt 2-mal geändert.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Derren
Beiträge: 557
Registriert: 23.07.2011 02:08

Re: Crossplatform Datenkommunikation zwischen Programmen

Beitrag von Derren »

Unter Windows mit Window Messages (Voraussetzung dafür ist natürlich ein Fenster, kann aber glaube ich auch unsichtbar sein)

edit:mk-soft war schneller.

Wenn die Codes von RSBasic schon Client und Server heißen: Warum nicht gleich ein einfachen (Web-)Server? Das ist auf jeden Fall Cross-Plattform und beliebig mächtig.
Signatur und so
Benutzeravatar
mk-soft
Beiträge: 3701
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Crossplatform Datenkommunikation zwischen Programmen

Beitrag von mk-soft »

P.S. Für MacOS
Link: https://www.purebasic.fr/english/viewto ... 19&t=68047

P.P.S Für Windows. Das hatte ich noch gesucht...
Link: viewtopic.php?f=8&t=13014
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Bisonte
Beiträge: 2430
Registriert: 01.04.2007 20:18

Re: Crossplatform Datenkommunikation zwischen Programmen

Beitrag von Bisonte »

Die Vorschläge sind schonmal gut :allright:

Allerdings auf Windows beschränkt, und soviel Ahnung von Linux/Mac API hab ich definitiv nicht.

Derrens Idee mit dem NetworkServer/Client hab ich getestet und es sieht gar nicht mal schlecht aus.
Ich dachte dies würde den Starter nur unnötig aufblähen, aber weit gefehlt...

40KB sehe ich immer noch als klein genug an :mrgreen:
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
¯\_(ツ)_/¯
Beiträge: 141
Registriert: 18.08.2017 09:35

Re: Crossplatform Datenkommunikation zwischen Programmen

Beitrag von ¯\_(ツ)_/¯ »

NetworkServer/Client finde ich auch gut aber du musst unbedingt darauf achten dass dein Programm von der Firewall nicht blockiert wird. Das musst du sicherstellen sonst funktioniert dein Programm nicht.
Bild
¯\_(ツ)_/¯
Beiträge: 141
Registriert: 18.08.2017 09:35

Re: Crossplatform Datenkommunikation zwischen Programmen

Beitrag von ¯\_(ツ)_/¯ »

Warum achtest du auf die Dateigröße? In heutiger Zeit spielt das keine Rolle mehr. Wir haben große und schnelle Speicher.
Bild
Benutzeravatar
Bisonte
Beiträge: 2430
Registriert: 01.04.2007 20:18

Re: Crossplatform Datenkommunikation zwischen Programmen

Beitrag von Bisonte »

Es gibt auch extrem langsame Speicher... und ich kenne davon zuhauf ;)

Und nur weil man mehr Speicher zur Verfügung hätte, muss man ja nicht damit rumasen :mrgreen:
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
¯\_(ツ)_/¯
Beiträge: 141
Registriert: 18.08.2017 09:35

Re: Crossplatform Datenkommunikation zwischen Programmen

Beitrag von ¯\_(ツ)_/¯ »

Bisonte hat geschrieben:Und nur weil man mehr Speicher zur Verfügung hätte, muss man ja nicht damit rumasen :mrgreen:
Komisch in anderen Threads waren die meisten Nutzer anderer Meinung. ZB beim Thema Arbeitsspeicher da wollte jemand Prozesse sparen und die meisten Nutzer (auch große Nutzer) meinten es wäre dumm weil ungenutzter RAM dumm wäre und dass man RAM auch nutzen muss wenn man RAM hat. Wieder diese Möchtegern-Profis die immer alles besser wissen müssen....
Bild
Antworten