client server in java

  • Themenstarter Themenstarter MatheStein
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

MatheStein

Gast
hey leute,

leider verstehe ich noch nicht ganz, wie java intern mit sockets umgeht.

angenommen ich eine Client A und einen Server S.
S ist mit einem serversocket ausgestattet, der, sagen wir mal, port 80 ausliest.
nun erstellt A ein Socket s1 zu port 80 von S und S nimmt mit "accept" an und bekommt ein socket s2 zurückgeliefert.

so wie ich das verstanden müssten daten, die über s1 geschickt werden per s2 eingelesen werden können und umgekehrt.
was ich aber jetzt nicht verstehe ist folgendes: s1 schickt die daten doch eigentlich noch an port 80 von S aber s2 müsste doch einen anderen port zu erreichen sein oder nicht? wie bekommt der client nun mit, dass seine gegenstelle (auf S) nicht mehr port 80 ist?

hoffe ich habe mich klar genug ausgedrückt
schönen sonntag noch 🙂
 
Ein Serversocket ist wie eine Art "Dispatcher". Nimmt er mit accept() eine Verbindung an, so bekommst du als Rückgabewerte den Socket der nun letztendlich mit dem Client verbunden ist.

Dieser Socket ist nicht mehr vom Typ "ServerSocket" sondern nur noch "Socket"

Oder in deinen Buchstabenkürzeln:

s1 ist ein ServerSocket und hat keinen "Verbinungszustand". Er ist nur für das accept() zuständig. Daten fließen hier keine drüber.

s2 ist ein Socket welcher mit dem Client verbunden ist. Hier fließen nun die Daten drüber.


- Alex
 
fraglich ist doch nur, welcher Port auf Serverseite verwendet wird,
nicht für accept(), sondern die potentiell 500 Connections gleichzeitig
 
80... Was sonst.

Sieht man doch wenn man mit netstat nachschaut.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben