feat: F4.6g4 the Gnutella window, measured against Java's

GnutellaWindowRun uses Java's Gnutella window on terminal-net beside the
line of GnutellaRun's story "search". The core cancels a search as Java
does (every connection of the program's own requests closed, passed-on
queries kept), lets the number of peers change and lists /peer2peer's
files; the room takes the window's actions and sends its view; the editor
shows Java's four tabs with Java's symbols. Not adopted from Java: a number
of peers of one digit only, a results table that keeps the last search's
rows, a files table that lags behind the folder.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-03 21:39:29 +00:00
co-authored by Claude Opus 5.5
parent 2b85e7432c
commit 5224e1a28b
24 changed files with 2211 additions and 17 deletions
+33
View File
@@ -1565,3 +1565,36 @@ Gemessen (03.10.2026):
je Verbindung einen eigenen `TCPSocket`. Javas Echo-Server verträgt keine
sofort wieder geschlossene Verbindung (die folgenden laufen in die
Zeitüberschreitung) — die Sonde hält sie eine halbe Sekunde.
### Gnutella (F4.6g4)
`GnutellaWindowRun` öffnet Javas `GUIApplicationPeerToPeerAnwendungWindow`
auf dem ersten Rechner von `terminal-net`, neben der Kette aus
`GnutellaRun`s Geschichte „search“ (.30 und 10.0.0.2 sind .31 beigetreten,
.31 teilt `notizen.txt`, 10.0.0.2 „Lied der Woche.txt“), und benutzt es wie
eine Person: Adresse (auch keine) und „Netz beitreten“, Suchbegriff mit
„Suchen“ und „Stopp!“, ein Ergebnis gewählt und „Herunterladen“, „Liste
leeren“, die Zahl der Teilnehmer mit „Speichern“ (auch keine Zahl), „Netz
verlassen“. Javas Knöpfe hören auf `mousePressed`, die Felder prüfen bei
`keyReleased` — die Sonde schickt beides. Je Schritt: was das Fenster zeigt
(Adressfeld und ob es rot ist, die drei Tabellen, das Feld der Teilnehmer)
und was das Programm hält (Zahl, Teilnehmer, Ergebnisse, Dateien von
`/peer2peer`) (`packages/core/test/gnutellaWindow.java.json`).
Gemessen (03.10.2026):
* Das Adressfeld beginnt mit 192.168.0.1; keine Adresse wird rot, „Netz
beitreten“ meldet dann „Dies ist keine gültige IP-Adresse“. Die eigene
Adresse tut nichts. Das Feld der Teilnehmer zeigt die Zahl des Programms.
* „Stopp!“ kurz nach „Suchen“: kein Treffer kommt an; eine neue Suche
findet wieder. Ohne gewählte Zeile tut „Herunterladen“ nichts; ein zweites
Herunterladen überschreibt die Datei.
* „Netz verlassen“ leert die Nachbarn, nicht die Ergebnisse.
* Javas Ungenauigkeiten:
* Die Prüfung der Teilnehmerzahl (`musterNurZahl` = `\d`) nimmt nur eine
Ziffer: 12 wird mit „Es sind nur Zahlen erlaubt!“ abgelehnt, 0 genommen.
* Nach einer Suche ohne Treffer zeigt die Ergebnistabelle weiter die
Ergebnisse der vorigen (das Programm hat keine mehr), bis etwas anderes
das Fenster auffrischt.
* Die Dateitabelle zeigt eine heruntergeladene Datei erst, wenn das
Programm das nächste Mal Bescheid gibt; eine daneben angelegte gar nicht.