Sockets oder "Connections"-Objekte im Server verwalten

  • C#

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von lurker.

    Sockets oder "Connections"-Objekte im Server verwalten

    Hallo Leute!

    Ich bin gerade dabei, mir nur aus spass einen Multithread-Server mit Sockets in Java zu schreiben. Über diesen Server sollten Chat-Nachrichten an angemeldeten Clients geschickt werden (o.ä.).
    Wie dieses Vorhaben zu reallisieren ist, weiß ich, ich habe soetwas ähnliches auch schon gemacht (Also das wissen dazu fehlt mir nicht, keine Sorge).

    Doch ich habe mich mit der Performance/Schönheit des Programmes etwas auseinander gesetzt. Da haben sich mir 2 Grundlegende Unterschiede gezeigt und ich bin am düfteln, welches der beiden wohl besser ist.
    Meine 1. Idee war, wenn sich ein Client bei dem Server meldet, muss dieser ein Objekt (selbergeschieben, mit dem Inhalt: Connection{IP-Addresse des Clients, Name des Clients}) mitschicken. Diese Connections würde ich anschließend in eine List (of Connection) speichern. Bei einer Nachricht würde ich diese Liste durchlaufen und für jeden Eintrag einen Socket starten und die Nachrichten an den Client (muss somit auch einen ServerSocket beinhalten) versenden.
    Meine 2. Idee belief sich darauf, dass ich direkt die Sockets in eine List (of Sockets) lege. Wenn nun eine Nachricht eintrifft wird jeder Socket durchgelaufen, und die Datei gesendet. Hierbei muss kein extra ServerSocket im Client laufen. Außerdem muss kein neuer Socket erstellt werden, wenn die Liste durchgelaufen wird. Jedoch besteht immer eine Verbindung zw. Server und Client. Und es sind immer so viele Sockets, wie Clients angemeldet sind, geöffnet sein.

    Nun meine Frage: Welche der beiden Idee würdet ihr bevorzugen?
    Beziehungsweise würdet ihr es komplett anders Lösen?

    Freue mich auf eine Antwort.
    Mit freundlichen Grüßen



    GVI (Teil1/2): 80%