Socketserver

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
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
 
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.
 
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.

Neue Themen


Zurück
Oben