Socketserver

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi
ich hab einen mulitclient Socketserver geschrieben. Jetzt habe ich eine Verständnisfrage. Der Server listend auf Port 80. Wenn eine Verbindung kommt wird diese angenommen und an einen Thread übergeben.

Socket socket = serverSocket.accept();

Nach accecpt() ist die verbindung hergestellt, jedoch über einen freien random Port. Müssen jetzt auf dem Server alle Prots offen sein um mehere Verbindungen zu verschiedenen Clients zu bearbeiten oder nur Port 80, wegen Firewall usw. Ich versteh das nicht so ganz, kann mir das jemand bitte erkläre
 

ARadauer

Top Contributor
wie es technisch genau abläuft, kann ich auch nicht sagen, bei mir ist das schon ein paar jahre her.
aber ich denk das auf deiner seite nur port 80 offen sein muss.
 
T

tuxedo

Gast
Der vermeintliche "random"-Port auf auf Client-Seite.

Socketverbindungen werden immer von Port A auf Clientseite zu Port B auf Serverseite geöffnet.

Der Client muss hierzu nur wissen: Der Server wartet auf Port B.

Das zugrundeliegende OS wählt dann den "random" Port A und baut die Verbindung auf. Man kann glaub auch den eigenen "Ausgangsport" A selbst wählen. Aber es hat nunmal seinen Sinn warum das OS den normalerweise für einen wählt.

Fazit: Am Server muss nur Port B offen sein. Also in deinem Fall Port 80.

- Alex

P.S. Im übrigen: Das gehört zum Thema "Netzwerkprogrammierung".
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben