Console -> Form Multichat

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Kevin Hombre.

    Console -> Form Multichat

    Hallo Community
    ich bin gerade dabei mir einen kleinen Mutlichat also für mehrere Leute mit Client & Server zu programmieren.

    Auf die idee bin ich durch folgenden Thread gekommen: [VB.NET] Multiserver (TCP)
    jetzt gefällt mir jedoch der Server Code von ihm nicht so weil dieser halt in einer Konsole läuft und ich ihn gerne auf einer Formanwendung haben will. Also programmiere ich einen vollkommen neuen Server. Jedoch stoße ich dabei auf folgendes Problem:

    Ich muss ja alle offnen Verbindungen zu dem Server in einer Variablen speichern, im fall vom Konsole Code wird das mit folgenden Code getan

    VB.NET-Quellcode

    1. Private list As New List(Of Connection)


    jedoch existiert der Typ "Connection" in Windows Forms anwendungen nicht.
    Wie heißt es in den Formanwendungen oder muss ich das komplett anders machen?

    Hoffe könnt mir helfen
    Mfg Eragon


    PS.: Fall jemand sich fragt warum ich es in einer Form haben möchte: weil ich mir schon so einen code fürs kicken/bannen, sowie für Ränge wie Moderator, Admin, etc erstellt habe.
    Sourcecode des Tutorials lesen, verstehen, Problem selbst erkennen.

    Connection ist eine selbst geschriebene Struktur.

    VB.NET-Quellcode

    1. Private Structure Connection
    2. Dim stream As NetworkStream
    3. Dim streamw As StreamWriter
    4. Dim streamr As StreamReader
    5. Dim nick As String ' natürlich optional, aber für die identifikation des clients empfehlenswert.
    6. End Structure
    achso den kleinen teil hab ich wohl überflogen... ich hätt es sonst so gemacht das ich die ganzen verbindungen in einer listbox anzeige und beim empfang einer nachricht einfach alle davon durchzugehen und die nachricht so weitetzuversenden...

    sorry für den sinnlosen thread ;( :huh: :whistling:

    eragon276 schrieb:

    achso den kleinen teil hab ich wohl überflogen... ich hätt es sonst so gemacht das ich die ganzen verbindungen in einer listbox anzeige und beim empfang einer nachricht einfach alle davon durchzugehen und die nachricht so weitetzuversenden...

    sorry für den sinnlosen thread ;( :huh: :whistling:

    Das wäre unsauber. GUI und Code Behind sollten immer konsequent getrennt werden und unabhängig voneinander agieren können!
    Wieso man in der Structure den Networkstream speichert ist mir ein Rätsel.

    Wieso nicht beispielsweise in

    VB.NET-Quellcode

    1. Listener.AcceptTcpClient
    einen BinaryReader und Binarywriter auf den Tcpclient anwenden und
    in der Structure halt BinaryReader,BinaryWriter und Tcpclient speichern?