feat: F4.6g1 the echo server and the generic client windows
Oracle EchoWindowRun uses Java's echo server and client windows as a person does; SaveAfterRunRun echo saves what Java keeps after the run. The room takes setActive with a port, connect/disconnect/send, sends both views and writes the server's port and the client's target back. The editor's windows show Java's buttons, fields and lines; a port that is no port is marked and not handed over (Java's button throws). Core fix: an empty message (one empty segment with the push, as Java's erstelleSegmente makes) counted as a repeat and never arrived. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1460,3 +1460,36 @@ Gemessen (03.10.2026):
|
||||
* Der Bildbetrachter heißt nach dem Öffnen wie die Datei; jedes geöffnete
|
||||
Bild legt Java über das vorige, eine Textdatei zeigt es als leeres Bild,
|
||||
ohne Fund bleibt alles.
|
||||
|
||||
### Echo-Server und Einfacher Client (F4.6g1)
|
||||
|
||||
`EchoWindowRun` öffnet Javas `GUIApplicationServerBausteinWindow` und
|
||||
`GUIApplicationClientBausteinWindow` auf je einem `GUIDesktopPanel` im Netz
|
||||
von mail-lan (Server 192.168.0.30, Client 192.168.0.20) und benutzt sie wie
|
||||
eine Person: Port tippen und starten (auch „abc“), Adresse und Port tippen
|
||||
und „Verbinden“ (auch Port „x“), Nachrichten senden (auch eine leere und
|
||||
eine mit zwei Zeilen), den Server anhalten, während der Client verbunden
|
||||
ist, „Trennen“, ein Port ohne Server, ein unbekannter Name. Je Schritt:
|
||||
Knöpfe, Felder (und ob sie beschreibbar sind), Zeilen beider Fenster und die
|
||||
Ausnahmen, die Javas Knöpfe warfen (`packages/sim/test/echoWindow.java.json`).
|
||||
`SaveAfterRunRun echo` speichert danach, was Java vom Echo im Projekt
|
||||
behält (`packages/sim/test/fixtures/after-run-echo.fls`).
|
||||
|
||||
Gemessen (03.10.2026):
|
||||
|
||||
* Server: „Starten“/„Anhalten“, Port 55555, das Feld nur angehalten
|
||||
beschreibbar; ein Port, der keine Zahl ist, wirft
|
||||
(`NumberFormatException`) und nichts geschieht.
|
||||
* Client: Adresse leer, Port 55555; „Verbinden“/„Trennen“; „Senden“ nur
|
||||
verbunden, danach ist das Nachrichtenfeld leer; die Felder sind verbunden
|
||||
gesperrt und zeigen nach jeder Zeile wieder die Werte des Programms.
|
||||
* Eine leere Nachricht geht als ein leeres Segment mit PSH hinaus
|
||||
(`erstelleSegmente` macht mindestens eines) und kommt als „>>“, „<<“
|
||||
zurück; Java beendet eine Nachricht mit jedem PSH, auch dem eines
|
||||
wiederholten Segments.
|
||||
* Der angehaltene Server schließt die Verbindung („Socket zu … geschlossen“,
|
||||
beim Client „Socket zu … getrennt“). Ein Port ohne Server endet in
|
||||
„Zeitüberschreitung beim Verbindungsaufbau“, ein unbekannter Name in „Ziel
|
||||
konnte nicht bestimmt werden!“.
|
||||
* Nach dem Lauf speichert Java den Port des Servers, dass er läuft, und
|
||||
Adresse und Port, die der Client zuletzt nahm.
|
||||
|
||||
Reference in New Issue
Block a user