Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Dezentraler Chat fürs LAN (https://www.delphipraxis.net/47791-dezentraler-chat-fuers-lan.html)

emteg 16. Jun 2005 11:29


Dezentraler Chat fürs LAN
 
Achtung: wichtige frage/diskusion für die zukunft am ende des threads!


Hallo leute,
um mein Programm vorzustellen habe ich mich jetzt auch mal hier angemeldet :hi:

Wie der Titel schon sagt handelt es sich um einen serverlosen chat fürs lokale netzwerk. Deshalb hört mein Programm auch auf den tollen namen "LanChat 2".
Das programm sendet über den UDP-Port 33333 und ist absolut dezentral. Eingebaut sind auch ein paar programmbefehle wie z.b. /exit, die man direkt im chat eingeben kann. Nach kurzem bugfixing hat mein Programm jetzt mal die Versionsnummer 1.1.0. Trotzdem würde ich noch nicht von einer final version sprechen, da ich den chat noch um einige features ergänzen möchte, z.b. filetransfer und auswählbare sprachen. Aber der Kern der sache funktioniert schon mal!

Für die leute, die es interessiert: für die kommunikation habe ich ein kleines message protokoll geschrieben. Jede gesendete nachricht hat einen header und die clients entscheiden dann, was mit den empfangenen daten passieren soll. Genauere details vom MP und den kommandozeilen befehlen gibt es in der documentation.html.

Wer will kann mal /help im chat eingeben und auch eine kurze liste mit allen kommandos sehen.

Download 1.6.5 Stable (31.07.05):
Download

Download 1.7 dev6 (13.01.06):
Download

Ich bin natürlich für jede form von kritik, anregungen und feature wünschen offen. Ich wünsche mir das sogar :)

freak4fun 16. Jun 2005 11:43

Re: Dezentraler Chat fürs LAN
 
Hallo :hi:,
mein erster Eindruck: gut. :)

Was mich stört ist, dass alle den gleichen Usernamen benutzen können.

// edit: Wäre auch schön, wenn man nur einer bestimmten Person im Chat etwas "zuflüstern" könnte.
Also ein 1on1 praktisch. :mrgreen:

Häng doch bitte noch einen Screenshot an. ;)

Ich würde mich freuen, wenn du den Source veröffentlichst. :angel2:

Sehr gut finde ich, das es nicht nur eine Echse ist. :hello:

MfG
freak

emteg 16. Jun 2005 12:38

Re: Dezentraler Chat fürs LAN
 
Screenshot ist angehängt! (dass der benutzer Server heißt hat übrigens nichts mit seiner funktion zu tun!)

Das mit den doppelten nicknames ist ein problem, da hast du recht. Ich werde auch in der nächsten version einen entsprechenden check beim connecten einbauen. Der client fragt praktisch die anderen nach ihren nicknames und verweigert eine verbindung/geht offline, wenn es doppelte gibt.

Außerdem habe ich einen kleinen bug bemerkt: wenn ich jemanden auf /ignore setze und der dann offline geht, wird er nicht aus der ignore liste gelöscht. Und wo wir grade bei der ignore liste sind: zur zeit sind "Emteg" und "emteg" 2 unterschiedliche nicknames...

Außerdem werd ich wohl noch ein paar befehlszeilen hinzufügen, z.b. /me.
Ich richte mich da nach eurem feedback :)

freak4fun 16. Jun 2005 12:42

Re: Dezentraler Chat fürs LAN
 
Hallo :hi:,

Wenn ein Benutzername zB Christian schon vorhanden ist kannst du ja einfach ein Christian[1] daraus machen. MAn kann ja dann den Benutzernamen selbst ändern. :zwinker:

MfG
freak

mr47 16. Jun 2005 13:11

Re: Dezentraler Chat fürs LAN
 
Hi!

Dein Programm ist nicht schlecht :thumb: .
Vor allem würde mich mal dein Protokoll interessieren. (Das Protokoll könntest du ja mal OS machen oder :wink: ).

Zum Prog: Ich finde es echt gut. Aber eins stört mich: Das ist zu Konsolenmäßig. Du schreibst ein Windowsprogamm! Ich persönlich fände es besser, wenn man die Optionen auch über das Menü ansprechen könnte!


mfg mr47

alcaeus 16. Jun 2005 13:15

Re: Dezentraler Chat fürs LAN
 
Hallo emteg,

einen Vorschlag hab ich: warum einen fest definierten Port? Und dann warum auch noch eine "Schnapszahl"? Wohl deshalb weil sie einfach zu merken ist, bzw. einem leicht einfaellt. Sobald irgendein Programmierer in irgendeinem Land der Welt auf die Idee kommt, ebenfalls ein Programm mit fixen Ports zu schreiben, und dann auch noch 33333 verwendet, wird es krachen sobald ich beide Programme gleichzeitig laufen lassen will. Also, mach den Port anpassbar. Ich kann ja immer noch mit den Kumpels absprechen, auf welchem Port der Chat laeuft. So waere wenigstens ein bisschen Kompatibilitaet gesichert ;)
Weiters: den "Bug" bezueglich der case-sensitiven Benutzernamen solltest du patchen, es gibt nichts was mehr nervt als einen "Alcaeus" und einen "alcaeus" im Chat zu haben, Verwechslungen sind da einzuplanen ;)

Greetz
alcaeus

emteg 16. Jun 2005 13:50

Re: Dezentraler Chat fürs LAN
 
Was für optionen soll ich denn über menüs ansprechbar machen? oder meinst du, dass ich die kommandos alle in ein menü packen soll und eventl. noch ein paar extra menüs einrichten? Das könnte ich natürlich machen.

Ein verstellbarer port ist ne gute idee. Ich werd dann eventuell den default port auf was anderes setzen, etwas wo nicht die chance besteht, mit einem anderen 33333er zusammenzustoßen :)

Das MP ist in der documentation.html komplett beschrieben - ich weiß jetzt nicht, ob ich dafür extra was ins OS posten soll :gruebel:

Kann mir noch jemand berichte vom scripting geben? soweit ich es ausprobiert habe, läuft es aber etwas ... unstet :P
Scripts sind einfach textdateien, die im selben ordner wie das programm liegen müssen. ausführen tut man sie mit /exec filename. Benutzen kann man alle konsolen kommandos und ein paar messages. steht aber in der docu.html drin.

DGL-luke 16. Jun 2005 15:15

Re: Dezentraler Chat fürs LAN
 
kann der erste client,der on ist, nicht irgendwie seinen port weitergeben? broadcast bzw. alle anderen lauschen an 0.0.0.0 und warten auf ein chat-päckchen?? das ganze müsste dann aber in intervallen von z.b. 5 sekunden gemacht werden. und solte abchaltbar sein, damit man nicht immer traffic hat.

mr47 16. Jun 2005 20:22

Re: Dezentraler Chat fürs LAN
 
Ich meinte dass man /away, /back, /nickname usw. einfach übers menü anklicken und vielleicht mit ner Inputbox dann den Nicknamen eingeben kann.

Das Script funktioniert (so weit ich es gestestet habe) einwandfrei! Ist sehr praktisch, weil man ganze abläufe reinpacken kann!

Wenn du die paar sachen noch verbesserst (Menüpunkte, Ports, usw. ) sag ich: :thumb: :thumb: :thumb: 3x Daumen hoch! Sehr gut gelungen!


mfg mr47

edit: Noch zum Protokoll: Ich will ja nicht nur wissen, wies funzt sondern auch die Implementierung haben :wink: . Aber vergiss das ganze! Du musst es nicht hergeben. Ist ja schließlich Freeware und net OS.

emteg 17. Jun 2005 10:44

Re: Dezentraler Chat fürs LAN
 
Also, ich habe eigentlich fast alles was hier gewünscht wurde in der neuen Version 1.2.1 eingebaut. Hier der Changelog:

Bugfix: Fehlendes Verhalten bei doppelten Nicknames.
Bugfix: Nicht aktualisierte Ignoreliste bei Offline events.
Bugfix: Nicht mehr wirksames Ignore nach änderung des Nicknames.
Bugfix: Programmabsturz bei sich selbst aufrufenden scripten.
Änderung: LCMP Update auf Version 1.1
Neu: Versenden privater Nachrichten.
Neu: Erweiterte Menüs, mehr Funktionen durch klicken erreichbar.
Neu: Frei wählbarer Port.
Neu: Einstellung: Ignorieren eines Benutzers auch nach Trennen der Verbindung.
Neu: Einstellung: Automatisches Verbinden beim Start
Neu: Unignore von allen ignorierten Usern mit /unignore all.
Neu: Kommandobefehle: /pm; /pmsend.

Ich weiß, das mit den PMs ist noch eher subobtimal, aber es geht immerhin. :???:

Wie immer sind alle Clients zueinander kompatibel, ältere Versionen werden halt in ihrem Log (nicht chatlog) von fehlermeldungen zugespammt :lol:

Die Implementation vom MP kann ich gerne OS machen. Ich werd mich da mal dran setzen wenn ich zeit habe.

mr47 18. Jun 2005 10:39

Re: Dezentraler Chat fürs LAN
 
Ich hätte noch einen Vorschlag! Mach ein script dass fest vom Programm immer beim start ausgeführt wird! Dann muss man ein Script dass man selbst schreibt einfach in das Automatische reinschreiben und nicht immer selber ausführen. Ich hoffe du verstehst was ich meine.

Praktisch sowas wie Autoexec.bat von Windows :wink:


mfg mr47 :hi:

emteg 18. Jun 2005 20:09

Re: Dezentraler Chat fürs LAN
 
Das mit dem autoexec ist schon implementiert! :) Jetzt hab ich aber ein ziemlich merkwürdiges problem:

Wenn eine PM kommt, soll ein neues form erstellt werden. Und obwohl mein code absolut unverfänglich und eigentlich fehlerfrei ist, hängt sich mein programm einfach auf :wall:
Ich nehme an, dass es was mit dem netzwerk zu tun hat. wenn ich die selbe procedure, die das form erstellt nicht durch eine chatzeile aufgerufen wird, gibt es keine probleme. sobald ich eben diese procedure aber ausführen lasse, sobald über das netzwerk eine aufforderung dazu kommt, hängt das programm. aber erst nachdem das form sichtbar ist. ich habe keine ahnung, woran das lieg :gruebel: :wall:
Vorschläge?

Hier ist der aufruf durchs netzwerk:
Delphi-Quellcode:
if pos('PMREQUEST', text)=1 then
  begin
    delete(text,1,10);                //header entfernen
    usr:=text;
    delete(usr,1,pos('|',text));      //empfänger abschneiden
    if usr=nickname then              //festellen, ob dieser cl gemeint ist
    begin
      delete(text,pos('|',text),9999); //absender abschneiden
      if IP<>IPWatch.LocalIP then
      begin
        UDPClient.Send(IP,Port,'PMACCEPT|'+Nickname);

        for i:=1 to 5 do
        begin
          if PMGrid.Cells[0,i]=text then
          begin
            PMExists:=true;
          end;
          if PMExists=false then
          begin
            if PMGrid.Cells[0,i]='' then
            begin
              PMGrid.Cells[0,i]:=text;
              PMGrid.Cells[1,i]:=IP;
              CreatePMSession(1);
            end;
          end;
        end;
       
      end;
    end;
    processed:=true;
  end;
Und die erstell procedure
Delphi-Quellcode:
procedure TForm1.CreatePMSession(line: integer);
var usr: string;
    PMForm: TForm;
begin

  if line=1 then
  begin
    PMForm:=TForm.Create(Self);
    PMForm.Name:='PMForm1';
    PMForm.Caption:='TestForm';
    PMForm.Show;
  end;

end;
Ich kann die procedure auch testweise an anderer stelle aufrufen, da erscheint das fenster ohne probleme.

Jarmen_Kell 18. Jun 2005 20:44

Re: Dezentraler Chat fürs LAN
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also ich weiß nicht, woran das liegt, will dir aber einen anderen Rat mit auf den Weg geben :)

Diese Fenster sollen ja flüsterfenster sein, wenn ich das richtig gesehen habe.
Da du davon aber vermutlich mehrere haben wirst und die auch einzeln ansprechen musst, sei dir ein Tutorial über Pointer ans Herz gelegt^^
Ich weiß nicht mehr, wo ich das her habe, aber ich hab dir mal ein geeignetes angehenkt.
Ich habe auch mal angefangen, einen Chat zu bauen und hatte einige Probs in der Richtung, aber damit klappte es wunderbar. Vielleicht löst es ja auch dein Problem.

ltiefland 18. Jun 2005 20:47

Re: Dezentraler Chat fürs LAN
 
Du erzeugst immer ein Formular "PMForm". Sobald es das einmal gibt, kracht es unweigerlich! Eine Formvariable kann man nicht mit mehreren Fenstern belegen!

emteg 18. Jun 2005 21:14

Re: Dezentraler Chat fürs LAN
 
Zitat:

Zitat von ltiefland
Du erzeugst immer ein Formular "PMForm". Sobald es das einmal gibt, kracht es unweigerlich! Eine Formvariable kann man nicht mit mehreren Fenstern belegen!

Das ist mir klar, es ist aber trotzdem nicht die problem ursache.
Mein program hänger erst genau in dem moment wo ich das form anzeigen lasse. alles andere wird brav gemacht.
Und außerdem habe ich festgestellt, dass die procedure 2mal durchlaufen wird, aber nur wenn sie übers netz kommt. Woran liegt das jetzt schon wieder? :gruebel:

ltiefland 18. Jun 2005 21:20

Re: Dezentraler Chat fürs LAN
 
Wenn sie zweimal durchlaufen wird, dann versucht er auch zweimal die Variable zu belegen. Das klappt aber nicht.

Du mußt sie irgendwo noch einmal aufrufen. Suche mal nach dem Namen der Prozedur und schau mal, ob Du das nicht irgendwie optimieren kannst.

emteg 18. Jun 2005 23:16

Re: Dezentraler Chat fürs LAN
 
Mal wieder ein nettes update. Das mit den PMs ist immer noch nicht absolut zufriedenstellend, aber schon deutlich besser als vorher. PMs haben jetzt ein hübsches interface und man braucht keine konsolenbefehle mehr. In der Userlist einfach einen benutzer doppelt oder mit der rechten maustaste anklicken und schon kan man eine pm schicken. Ignorieren geht jetzt auch über das besagte rechtsklick menü.
Neu sind auch scripte, die beim connnecten automatisch ausgeführt werden, wenn man will. Einfach den dateinamen im settingstab eintragen und los gehts.

Version 1.3.2:
Download

Changelog:
Bugfix: Socketerror beim Verbindungsversuch wenn keine Netzwerkverbindung besteht.
Bugfix: Programm kann nicht beendet werden, wenn keine Netzwerkverbindung besteht.
Änderung: LCMP Update auf Version 1.2
Änderung: Neuorganinsierter Settingstab.
Änderung: Kommandozeile entfernt: /pmsend.
Neu: PM Interface, Nachrichten können jetzt ohne Konsolenbefehle verschickt werden.
Neu: Rechtsklick Menü in der Userlist.
Neu: Möglichkeit Scripte beim Start auszuführen.

emteg 20. Jun 2005 15:20

Re: Dezentraler Chat fürs LAN
 
Und mal wieder ein update mit neuen Features. Diesmal neu dabei: filetransfer und farben im chatlog!

Version 1.4.3 (20.06.50):
Download

Changelog:
Bugfix: Fehler, bei dem Benutzer nach Unignore weiterhin ignoriert wurden.
Änderung: LCMP Update auf Version 1.3
Neu: Unterstützung beliebig vieler Sprachen. Mitgeliefert: Englisch, Deutsch.
Neu: Verschiedene Farben im Chat.
Neu: Programm kann zum Trayicon minimiert werden.
Neu: Filetransfer! Aufgerufen wird ein filetransfer mit /sendfile Username
Neu: Neue Kommandozeilen: /me; /sendfile.

Delphi Star 20. Jun 2005 18:14

Re: Dezentraler Chat fürs LAN
 
Es wäre auch schön, wenn man das Programm in den Traybereich minimiert hat, dass man mit einem längeren (nicht dieses kurze Aufleuchte, das übersieht man leicht) blinken des Symbols oder einen Hinweiston darauf hingewiesen, das man eine Nachricht erhalten hat.
Ansonsten ein schönes Programm :thumb:

emteg 20. Jun 2005 23:10

Re: Dezentraler Chat fürs LAN
 
du meinst, dass das blinken häufiger wiederholt werden soll?

Delphi Star 21. Jun 2005 21:38

Re: Dezentraler Chat fürs LAN
 
Genau, dass das Blinken so lange wiederholt wird bis man das Programmfenster wiederherstellt.

emteg 27. Jun 2005 00:21

Re: Dezentraler Chat fürs LAN
 
Und mal wieder gibts ein update:

Version 1.5.3 (27.06.05):
Download

Changelog:
Bugfix: Fehler, bei dem beim Drücken der Entertaste der standard Systemsound gespielt wurde.
Bugfix: Fehlerhafte Anzeigen von bestimmten Einträgen im Kommandomenü
Bugfix: Die Einstellung "Zum Trayicon minimieren" wird jetzt sofort übernommen.
Bugfix: Nach einem Portwechsel wird der Benutzer zum Neustart von LC2 aufgefordert.
Bugfix: Fehler, bei dem das Kommando /pm als unbekannt gemeldet wurde.
Änderung: Trayicon kann entweder blinken oder "lechten", wenn eine neuer Nachricht eintrifft.
Neu: Einstellen der Farben von LC2 und erstellen von Farbprofilen.
Neu: Eintrag im Kommandomenü: Datei senden
Neu: Wiedereinblenden des Filetransferdialogs über das Menü ansicht.

Zacherl 27. Jun 2005 18:06

Re: Dezentraler Chat fürs LAN
 
Hallo,
ich finde den Chat an sich eigentlich ganz gut gelungen! :thumb:

Allerdings gefällt mir das GUI nicht sonderlich. Dein Programm erinnert mich irgendwie an Konsolen Anwendungen. Wie wärs' mit einer neuen Benutzeroberfläche?

Florian

Speedmaster 27. Jun 2005 18:08

Re: Dezentraler Chat fürs LAN
 
Zitat:

Zitat von Florian Bernd
Hallo,
ich finde den Chat an sich eigentlich ganz gut gelungen! :thumb:

Allerdings gefällt mir das GUI nicht sonderlich. Dein Programm erinnert mich irgendwie an Konsolen Anwendungen. Wie wärs' mit einer neuen Benutzeroberfläche?

Florian

Muss ich zustimmen, das Design erinnert mich so an Win 3.1!! :(

emteg 1. Jul 2005 13:42

Re: Dezentraler Chat fürs LAN
 
Ich wollte nur mal geschwind ein kleines status update geben: ich arbeite hart am neuen GUI, der settingstab gefällt mir jetzt schon richtig gut. Das ganze sieht jetzt so schön klicki-bunti wie windows xp aus :-D

mh166 1. Jul 2005 19:32

Re: Dezentraler Chat fürs LAN
 
Zitat:

Zitat von emteg
Das ganze sieht jetzt so schön klicki-bunti wie windows xp aus :-D

:shock: :( :pale: :kotz:

mfg, mh166

emteg 1. Jul 2005 23:25

Re: Dezentraler Chat fürs LAN
 
Liste der Anhänge anzeigen (Anzahl: 1)
naja, das wolltet ihr doch, ne :lol:
Gut, ganz so schlimm ist es auch nicht. Es gibt halt schöne große, bunte buttons. Aktueller Screenshot im anghang...

Daniel G 2. Jul 2005 00:14

Re: Dezentraler Chat fürs LAN
 
Hm... Die Icons sind irgendwie ziemlich überdimensioniert, findest du nicht? Ich meine, ich für meinen Teil kann noch recht gut gucken und brauch sonne Monstericons nicht. Zumal ich am jetzigen Design eh nichts auszusetzen hab'.

derpepe 2. Jul 2005 00:33

Re: Dezentraler Chat fürs LAN
 
Ich find die Symbole supi!!

DGL-luke 2. Jul 2005 10:24

Re: Dezentraler Chat fürs LAN
 
sieht echt professionell aus, die GUI!

mh166 2. Jul 2005 19:34

Re: Dezentraler Chat fürs LAN
 
Naja... Also ich find die Icons auch zu groß! Ansonsten gehts ja mal noch... Aber wirklich: mach die 32x32 - MAXIMAL!

mfg, mh166

Jarmen_Kell 2. Jul 2005 21:41

Re: Dezentraler Chat fürs LAN
 
Wenn du tatsächlich (so wie es aussieht) ein XPManifest drinhaben solltest, mußt du auch bedenken, dass es unter anderen Versionen nicht allzu hübsch ist.
Und aus einem mir unerklärlichen Grund scheint man die Farben von
Paneln usw. nicht mehr ändern zu können :gruebel:

Zacherl 4. Jul 2005 13:15

Re: Dezentraler Chat fürs LAN
 
Hallo,
ja! die GUI ist jetzt völlig in Ordnung. :thumb: Nur wie schon gesagt, die Symbole sind viel zu groß.

Florian

emteg 12. Jul 2005 07:33

Re: Dezentraler Chat fürs LAN
 
So, ich hab mir inzwischen ne homepage zusammengebastelt, bzw. ich tus immernoch. Schaut also mal vorbei auf

www.lanchat2.tk

und besucht auch mal das forum und sagt hallo :D

phlux 12. Jul 2005 07:57

Re: Dezentraler Chat fürs LAN
 
uiuiui da kriegt man ja augenkrebs :x

emteg 12. Jul 2005 20:44

Re: Dezentraler Chat fürs LAN
 
ich mach mir ja schon ein neues design.. :wall:

Mal ne frage zum thema channels: was würdet ihr besser finden
- das man sobald man online geht automatisch eine liste mit allen channels und den usern darn kriegt
- oder das man details (existens des channels, benutzer) über channels erst dann erfährt, wenn man ihnen beitritt?

phlux 12. Jul 2005 22:30

Re: Dezentraler Chat fürs LAN
 
ein flag mit dem man beides toggeln kann :zwinker:

zecke 12. Jul 2005 23:00

Re: Dezentraler Chat fürs LAN
 
:hi:

Bisher gut gelungen! :thumb:

:arrow: Wie wärs wenn du die Oberfläche wählbar machst? - weil mir gefällt sie so (win 3.1 wie jmd meinte) auch besser als dein Screenshot von dem "klicki bunti" GUI. Also quasi eine Skin-Wahl.

:arrow: Des Weiteren vermisse ich Hot-Keys oder habe ich etwas verpasst?


edit: Es stört mich nur, dass das Programm auch eine Verbindung haben möchte bzw. abfragen möchte, wenn ich das Programm beende ohne jemals eine Verbindung aufgerufen zu haben bzw. gechattet zu haben (kein netzwerk zum testen) :/

emteg 13. Jul 2005 16:27

Re: Dezentraler Chat fürs LAN
 
Zitat:

edit: Es stört mich nur, dass das Programm auch eine Verbindung haben möchte bzw. abfragen möchte, wenn ich das Programm beende ohne jemals eine Verbindung aufgerufen zu haben bzw. gechattet zu haben (kein netzwerk zum testen) :/
Da haste recht, das wird sofort rausgeschmissen! Und ich glaube, ich werde das was ich bis jetzt erreicht habe mal zusammenfassen und hochladen. Näheres kommt dann eventl. schon heute abend.

emteg 13. Jul 2005 21:45

Re: Dezentraler Chat fürs LAN
 
So, ich hab die neue version 1.6.3 mal fertig gemacht (jetzt noch ohne channels).

Den downloadlink gibts auf der homepage, unter
www.lanchat2.tk

Im forum dort gibts auch einen detailierten changelog, aber ich werde hier mal die größten verbesserungen zusammenfassen :D

- es gibt ein hübsches, neu designtes GUI (das man aber, wenn man will, auch ausschalten kann).
- Die userliste ist jetzt keine liste mehr sondern ein baum.
- Man kann jetzt beliebig viele pm sessions aufmachen
- man kann die Schriftart einstellen

und dann mal bitte her mit dem feedback 8)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:31 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz