Einzelnen Beitrag anzeigen

stephan007

Registriert seit: 2. Mär 2007
48 Beiträge
 
#9

Re: caret setzen im tmemo, wie geht das?

  Alt 15. Jun 2007, 12:37
das ganze sieht so aus:
server (mein tool) kommuniziert via tcp mit client. client erhällt daten von beliebiger anwendung, die damit arbeiten will oder soll.

server sucht nach verfügbaren geräten, mit denen es kommunizieren kann. kommunikation erfolgt durch tastendruck, d.h. eine taste löst eine aktion aus, sagen wir z.b. r löst einen reset auf standardeinstellungen aus usw.

jetzt muss es aber möglich sein, dass das tool/server, der im hintergrund läuft, gleichzeitig mehrere anwendungen bedient, also mehrere fenster gleichzeitig offen hat. also merken, was wohin gehört, damit die daten ins richtige fenster kommen. und jede dieser instanzen läuft damit in einem eigenen thread (also die kommunikation zwischen server und client). und für die tcp verbindung ist indi verantwortlich.

beispiel:
anwendung a ruft das tool/server auf und sucht nach gerät x um mit diesem zu kommunizieren.
anwendung b ruft das tool/server auf und sucht nach gerät y um mit diesem zu kommunizieren.
anwendung c ruft das toll/server auf und sucht nach gerät z um mit diesem zu kommunizieren.

also parallelität ist hier notwendig.

jetzt klarer? und nun soll die verbindung zu gerät z beendet werden und sagen wir, wir wollen auf gerät u zugreifen, dann hängt sich mein terminal genau dort auf, wo ich den cursor im tmemo setze. die pfeiltasten werden nämlich nicht vom keypress erkannt (warum ist mir zwar nicht ganz klar) und daher könntest du herumnavigieren im fenster. folglich setze ich den caret permanent retour auf die richtige position. d.h. du siehst nur ein kurzes flackern und der caret steht wieder, wo er vorher war. nur durch das permanente setzen des caret (weil eben die pfeiltatsten nicht abgefangen werden) crashed da etwas beim terminieren der threads. achja, was das tool respektive terminal auch noch macht ist permanent (d.h. in sinnvollen abständen) zu schauen, ob die gegenseite überhaupt noch da ist (also ein keepalive bzw. isalive).

alles klar?
  Mit Zitat antworten Zitat