iChat Server & Client (2.11b Released!)

    • Beta

    Es gibt 100 Antworten in diesem Thema. Der letzte Beitrag () ist von dennis*<3.

      Ich hab mich mal gemacht:
      Über das normale Net.Scockets.TcpListener
      kann man nur dann eine "Fernverbindung" machen, wenn auf dem Router der Port gemappt wurde.
      d.h. Voresrt funktioniert er bei einigen nur über LAN.
      Bis ich herausgefunden habe, wie ich VPNs aufbauen kann, wird das auch so bleiben.
      Ein Preview:
      Es gibt eine neue rcon.Funktion: "/remotekill", um den Client zu Beenden, statt ihn zu Kicken. Das kann dann nützlich sein, wenn er spammt, da er dann erstmal wieder neustarten muss.
      Der Client hat nun folgende Befehle:
      /clear (schon von Anfang an, aber ich habe vergessen, es zu erwähnen) : Nachrichtenverlauf löschen
      /disconnect : na was wohl ;)
      /connect <IP> <Port> <Nick> : Verbindung, um z.B. bei einem Connection FAILED erneut zu versuchen
      Man muss nun auch den Port der Verbindung setzen.
      Falls es nicht gut geht, dann versucht es mal mit 8080 (Standard HTTP-Port, meistens offen.)
      Hier könnt ihr prüfen, welche Ports gehen sollten (Nach aussen).

      DL im Ersten Post.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „FAtheone“ ()

      Echt nett! :)
      Perfekt für unseren Informatik Unterricht.

      Achja, ein Verbesserungsvorschlag: "Send" als Standardbutton, damit die Clients die Nachrichten mit Enter absenden können.
      Ansonsten hab ich nur 1x festgestellt, dass mir ein Client "abgekratzt" ist. (Server hat keine Nachrichten mehr bekommen)

      Kannst ja nen auch Infobutton mit allen Commands in das Programm einbauen, dann muss man sich die nicht alle merken.
      Nicht unbedingt.
      Zu den Verbesserungen: es guibt bereits 0.3.9 (als 0.4 releast)
      Deine Vorschläge sind also bereits umgesetzt, ohne es zu wissen ;)
      neu:

      Send mit Enter
      Autocompletion für alle Befehle (Client)
      Sauberer disconnect
      Nickname steht in Fenstertitel

      Release in wenigen Minuten.

      /E:

      Release fertig!
      DL im 1.Post.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „FAtheone“ ()

      Sieht gut aus, hätte noch 2 Vorschläge:
      1. Wenn die Box voll ist, dass der Client bei einer neuen Nachricht gleich nach unten scrollt.
      2. Spamschutz im Server einbauen. z.B. maximal 3 Nachrichten pro User pro 10 Sekunden. Dass man das einstellen kann im Server und der Client dann z.B. eine Msgbox bekommt, dass der Spamschutz eingeschaltet ist, wenn man die Nachrichtenzahl überschreitet.

      PS: Ein Design fehlt noch ;)
      Design ist momentan zweitrangig, aber Vorschläge nehme ich gerne an.
      Spamschutz wird Clientseitig ablaufen, was Rechenzeit spart und den Traffic verringert

      Ein wichtige sicherheitslücke:

      mit
      /psay
      lassen sich Server-to-Client Metabefehle simuleren, wie z.B. den remotekill:

      /psay TestuserDenIchNichtMag /remotekill

      Ich werde den Bug in 0.5 behoben haben, da so auch User einen Remotekill machen können (selbst gegen Admins!)

      Scrolling wird ebenfalls gemacht.

      //EDIT:

      Die Sicherheitslücke existierte nie, da immer der Username und ein Doppelpunkt angehängt werden, versuche werden jedoch ab 0.5 Protokolliert.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „FAtheone“ ()

      Verbesserungen

      Hallo, ich habe mich jetzt extra wegen dir hier registriert :P
      Also:

      - Masterliste
      Umsetzung:
      Angezeigt werden per Client vom Masterserver eine Liste mit servern. Diese senden bei dem Login oder Logout einen Status des aktuellen Servers an den Masterserver.
      Um nicht auszulastend zu sein( ;D). Wird am Anfang einfach überprüft, ob der Server erreichbar ist. Wenn dies nicht der Fall ist, wird der Client ohne Server-auswahl und der Server ohne Master-Nachrichten gestartet. Wie man die verbindung verarbeitet? Ganz einfach! per TCP. :P
      Und um alle 30 Minuten minimal eine aktuelle Liste zu haben werden alle einmal versucht erreicht zu werden, ist dies der Fall, bleibt in der Liste wenn nicht.... NAJA :P^^
      Wie der Client das Abfragt musst du wissen.
      (Falls du keinen Server hast der den Traffic oder, oder packt, kann ich dir einen oder wenn Nötig 2 zuverfügung stellen)

      - Zeituhr
      Umsetzung:
      Es wird per lokaler Uhr die Uhrzeit bei einer Nachricht bei geschrieben.(War eine Idee aus meinem Clan)
      Dies kann Server- oder Client-seitig passieren.

      - Smylies:
      Umsetzung:
      Der Client hat eingespeicherte ganz kleine jpgs, oder, oder.
      Diese werden bei erkenung bei der Zeichen sofort umgewandelt in Bilder.

      - Mitgliederliste:
      Umsetzung:
      Du machst eine kleine 2. Form auf, in diese wird eine Liste eingefügt und diese wird nur angezeigt, wenn diese Form aufgerufen wird oder man auf den untereren Button "Refresh" klickt.
      Damit hält man den Transfer sehr gering und nur bei dem Nötigsten.

      - "Down-Scroll":
      Umsetzung:
      Bei neuen Nachrichten legt sich die Scroll Seite wieder auf den Grund um lesen zukönnen, was der jenige geschrieben hat.

      - No-Timeout:
      Umsetzung:
      Es wird eine kleine Nachricht geschickt... alles KA^^
      Und diese wird nicht angezeigt kann ja eine nonsens sache sein so etwas wie /da.

      PS: Reschtschreibfehler Copyright by my keyboard :P

      LG Lucien

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „lucienn3“ ()

      Hallo lucienn3, vielen Dank für die Vorschläge, aber das Projekt liegt bereits auf Eis.
      In version 2.11b (meiner aktuellen, privaten) gibt es einige Features bereits; für den Rest müsste ich mir mal Zeit nehmen.
      Einen Masterserver halte ich, angesichts des eigentlichen Zwecks, für unangebracht - aber du kannst ja ein eingenes programmieren.
      Smileys sind verlockend - und auch schon fast implementiert.
      Mitgliedliste gibt es bereits (mit selektiver Anzeige, je nach Nutzerrechten)
      "Down-Scroll" ebenfalls
      Und Timeouts sind ebenfalls implementiert (Keep-Alive Pakete)

      Außerdem ist der Nachrichtenverkehr mitlerweile AES gesichert und Account/ Session-key basiert.
      Bei Bedarf kann ich ja mal die 2.11b hochladen.

      Gruß, FAtheone
      Das ist bis jetzt das beste Tool das ich hier je gesehen habe!
      Es ist einfach und schnell.
      Einzige Kritik Punkte:

      Stell mal Formborderstyle auf Fixedsingle ;)
      Und deaktiviere Maximieren button.
      Ansonsten:
      -Anzeige IM CLIENT wenn jemand den chat verlässt.
      -Im Client IP Wechsel (Nicht immer neu starten)
      -Das man Leute auch per Nickname ODER ID Kicken kann.
      Das mit der ID ist nicht schlecht wenn leute sich mit einem langennamen anmelden.
      -Maximal 6 Zeichen für nickname.

      Fazit: Gutes Programm, nur design ist nicht so toll..
      P.s Ich steige auf i-Chat um (von skype), da es leichter ist.
      Mach weiter! :thumbsup: :thumbsup: :thumbsup: :thumbsup: :thumbsup: :thumbsup:
      Okay, wer von euch kann eigentlich noch lesen ;)

      Ich habe bereits eine stark überarbeitete Version. Ich lade sie euch mal hoch.

      //EDIT:

      Sodele.

      Die FARunTime natürlich in .dll umbenennen (WARUM darf man keine DLLs anhängen ?!?) und alles in einen Ordner
      es wird durch das Programm noch die Datei "userDB.ini" erzeugt. In dieser werden Nicknames mit Passwort (natürlich gehasht^^) und Rechten gespeichert.
      Viel Spass damit :P

      //EDIT 2:

      Eingangspost bearbeitet. Download nun da als 7-zip.
      Ich lasse die rohen Dateien mal oben - falls Jemand keinen Bock auf 7-zip hat.
      Dateien
      • iChat 2.exe

        (883,71 kB, 105 mal heruntergeladen, zuletzt: )
      • FARunTime.dll.txt

        (152,06 kB, 76 mal heruntergeladen, zuletzt: )

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „FAtheone“ ()

      Packe noch ne ZIP in den Eingangspost.

      //EDIT:

      Zwei "Probleme" gibt es:

      1. Admin Shutdown flag ermöglicht auch das entfernen von Chat,Kick,Ban und Shutdown von Root-Usern - Also mit Bedacht vergeben.
      2. Bei falschem Passwort (bei Anmeldung) _kann_ iChat abschmieren. Ursache noch nicht gefunden; es wird eine MessageBox mit Text "BOOM!" angezeigt. Löschen der userDB.ini und neustart des Servers löscht übrigens alle Accounts (bzw. betreffende Zeilen in der userDB entfernen entsprechende User. Die Letzte Zahl sind die flags. 31 ist root; 0 normal user dazwischen je nachdem.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „FAtheone“ ()

      Einfach Geil!

      Du hast fast alles Umgesetzt!
      Übersichtlicher ist es jetzt, Es ist besser Animiert mit bildern & icon's.
      Die hässliche Konsole (Die auch ihren Charme hat :D) ist weg.
      Bann Funktion Admin Chat alles da!

      Ich kann das passwort aber nicht ändern... es muss immer "A-soft" sein..