Sorry, ich komm aus der C/C++ Welt
Ich weiss nicht wie es in der Java Welt laeuft.
Aber mit der beschriebenen Betrachtungsweisse wirst in der Netwerk-Programmierung nicht weiter kommen.
Betrachte die Streams als Stecker an einem unidirektionalen Kabel: InputStreams die "Pappa"- und OutputStreams die "Mamma"-Stecker
unidirektional iss ja noch ok
es gehen eh nur 2 richtungen (bidirektional)
Aber die Endpunkte sind definitiv keine "Streams"
Für die Endpunkte gibts andere Abstrakte Begriffe. IODevices, Sockets ... etc
Im speziellen falle versuchst du grad nen "Socket" zu erklären.
2 Linen,
aber es sind 4 Streams ^^
1 biderektionale Line (oder 2 linien) sind ok.
2 Sockets !
und beliebig viele Streams
Was sind nun Streams ?
Streams sind nichts was ein reales Objects beschreibt. Also kein Endpunkt, keine Linie, keine Verbindung.
Streams bezeichnen eher eine Tätigkeit. das lesen und schreiben von daten (rohdaten oder text) ohne manipulation von positionen, einfach nur der reihe nach.
DIe Abstraction des Vorgangs ist der Stream.
Ziele von Streams muessen nicht nur Netzwerk verbindungen sein, sondern es gehen alle streamfaehige Devices ...
- Dateien
- Konsole
- Puffer (byte-Arrays im speicher).
und ein so ein Ziel (device) kann mehrere Streams bedienen.
wobei parallel mit mehreren streams auf einmal schreiben eher sinnfrei ist, kann aber parelleles lesen von daten manchmal sinnvoll sein ...
Streams gibts als Input, Output und als Input/Output Stream (IStream, OStream, IOStream). Also mit einem Stream auf einem socket z.b. koennte man lesen und gleichzeitig mit dem selben Stream schreiben.
Also ein endpunkt == 2 Streams ist definitiv nicht zwingend
Ich denk in Java ist das ähnlich
DIe konzepte werden sich nicht so ändern ...
Also sieh ein Stream in Java als Abstraktes Object an, wo man Daten(binaer oder Text) in Reihenfolge reinschreiben, bzw rauslesen kann. Was (im Hintergrund) immer mit nem "Device(Gerät)" verbunden ist.
In C/C++ musst die verbindungen fast immer selber zusammenbauen, denk in Java geht da halt vieles automatisch ???
Ciao ...