Liste der Anhänge anzeigen (Anzahl: 1)
Also, Meerschwein is angesagt.
Da ist ein IP_DLL drinnen, wie gehabt, mit ein paar Kleinigkeiten dazu.
Er kann, je nach Button, Server spielen oder Client, wie vorher.
Pikanterie: er kann auch beides gleichzeitig machen, (natürlich erst define und dann connect, logo)
Darüber hinaus noch naturbelassen, guck einfach mal rein.
Liste der Anhänge anzeigen (Anzahl: 1)
Ja, habe schon reingeguckt.
Mein Gehirn hatte aber heute keine rechte Lust.
Darum bin ich mit ihm übereingekommen, dass ich das erst Morgen verstehe.
Weiter haben wir uns geeinigt die Zeit nicht zu vertrödeln, obwohl wir beide sehr müde wahren.
Darum haben wir erstmal was gemacht was relativ einfach ist und Arbeitserleichterung für die Zukunft verspricht.
Ich habe jetzt mal die Ecke an der ich arbeite zusammengestellt.
In den Programmtexten beider Projekte kannst Du sehen wie ich Dein Template einbaue.
Falls es Dir so zusagt würde ich das in diesem Stil fürs erste beibehalten wollen.
Das kann sich ändern wenn wir das möglicherweise in Klassen oder Module packen.
Bis dahin wäre es für mich zum Testen und Verwenden eine enorme Erleichterung.
Also bitte wohlwollend prüfen.
Ich habe die IP_DLL schon so zurechtgemacht das Du sie zum Weiterarbeiten nehmen könntest.
Das ist jetzt eine Option, wenn Du was anderes bereit stellst bau ich das natürlich auch ein.
Netter Gruß
Liste der Anhänge anzeigen (Anzahl: 1)
Jetzt noch der Rest.
Alles mit einem mal wollte er nicht.
Netter Gruß
Liste der Anhänge anzeigen (Anzahl: 1)
Short Doku I:
Beim Portdefinieren zeigt die bei "define" erzeugte "IpDef"-Referenz sozusagen auf das "Mother-Port". Ausser eventuell wieder wegschmeissen ("stop listening") kann man damit eigentlich nicht machen.
Wenn sich nun ein Client an das Port connected, wird "callback" gerufen mit dem Status=2. (Der Client kriegt da grad sein "ok" auf den Connect)
Auch damit kann man in unserem Fall nicht viel machen, da ja noch keine Message empfangen wurde.
Wenn nun der Client die erste Message wegschickt, sollte sie ja zumindest seine PID enthalten, und jetzt sollte (oder kann) der Server erst wirklich aktiv werden.
Aber da ist der Status nichtmehr = 2, sondern wieder normales "ok" (=0)
Rein technisch müßte sich ein Server diese IpRef nicht extra merken, er kriegt ja jedesmal in der Callbackroutine diesen Wert wieder mit.
Er kann auch so darauf normal senden (antworten) oder ggf. "disconnecten"
(Wird fortgesetzt)
Liste der Anhänge anzeigen (Anzahl: 1)
Doku II:
Stimmen wir mal die Situation beim Starten der einzelnen Applikationen:
Es gibt eine Startliste mit Prozess/Programm Namen. wobei sie auch mehrfach gestartet werden sollen.
z.B. Eintrag "GUI e.V" Starten = 2 x
Der "SHELL" Befehl gibt ja die PID des erzeugten Prozesses zurück.
d.h. die PID des GUI e.V weiß MARV schon durch das Starten.
Jeder erzeugte GUI e.V Prozess connected sich nun mindestens einmal, möglicherweise aber auch mehrfach an das von MARV definierte Port (42)
Bei Marv taucht nun eine neue IpRef auf, die MARV ja dem richtigen Prozess zuordnen muß
Daher muß in der ersten Message von GUI e.V die PID enthalten sein. Die kann er nun bei den durch "SHELL" erzeugten Einträgen suchen und die IpRef dazu hängen.
Bei jeder weiteren Message des GUI e.V wird MARV nun die IpRef suchen (und finden), d.h. er weiß sofort, von wem die Message kommt.
Dabei sollte eine Struktur entstehen, wie im Bild angedeutet.
Sind wir soweit d'accord ?
Liste der Anhänge anzeigen (Anzahl: 1)
So. Ich hab die Doku ein wenig auf den letzten Stand gebracht.
Passende DLL dazu is auch dabei.
(bei den "RnRegist" ist aber noch alles beim Alten)
Neu: Manipulationen mit "Key-Value" unabhängig von RnCom oder sonstwas. (schreiben und lesen)
Also ggf. auch für Commandline bzw. shell-commands
Hab ich noch nicht, aber ich denke, wir werden in den Routinen den Text für "KEY" standardgenmäß links ausrichten, trimmen und uppercase.
"Value" nur ausrichten und trimmen.
Gerade mit ggf. anderen Plattformen ist das einfach sicherer
Bei den "Config" Paramtern und Knoten mach ich es ja auch, das hat sich bewährt.
Liste der Anhänge anzeigen (Anzahl: 1)
Pfooaaa ! Der VB ist nix für Rekonvaleszente, Frischoperierte, manisch Depressive und Gemütskranke !
Wenn du sagst Text.Length , gibt er dir die Länge von "new", egal, was da drin steht.
Leider muß man auf jeden Fall folgendes einfügen, damit das ein sauberer String wird:
Code:
CsvLen = RnCsvRdKey(CsvRef, Key)
While CsvLen <> 0
Key = Key.Remove(CsvLen, Key.Length - CsvLen) NEWNEWNEW
CsvLen = RnCsvRdVal(CsvRef, Val)
Val = Val.Remove(CsvLen, Val.Length - CsvLen) NEWNEWNEW
....
Ich faß' es nicht.
(Geht auch, wenn csvlen = 0, also keine Sorge)
Anbei die DLL mit trimmen und ausrichten, wie besprochen