# client server in java



## MatheStein (8. Nov 2009)

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


----------



## SlaterB (8. Nov 2009)

http://www.java-forum.org/java-faq-beitraege/5507-netzwerkgrundlagen-serversocket-socket.html

edit: leider doch nicht so eindeutig
Question about ServerSocket port number and Socket port number (Sockets and Internet Protocols forum at JavaRanch)
muss wer beantworten, der es im Detail kennt

das hier
What Is a Socket? (The Java™ Tutorials > Custom Networking > All About Sockets)
ist auch nicht gerade eindeutig formuliert


----------



## tuxedo (9. Nov 2009)

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


----------



## SlaterB (9. Nov 2009)

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


----------



## tuxedo (9. Nov 2009)

80... Was sonst.

Sieht man doch wenn man mit netstat nachschaut.


----------

