![]() |
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 1.7 dev6 (13.01.06): ![]() Ich bin natürlich für jede form von kritik, anregungen und feature wünschen offen. Ich wünsche mir das sogar :) |
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 |
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 :) |
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 |
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 |
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 |
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. |
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.
|
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. |
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. |
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: |
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:
Und die erstell procedure
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;
Delphi-Quellcode:
Ich kann die procedure auch testweise an anderer stelle aufrufen, da erscheint das fenster ohne probleme.
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; |
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. |
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!
|
Re: Dezentraler Chat fürs LAN
Zitat:
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: |
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. |
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: ![]() 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. |
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): ![]() 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. |
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: |
Re: Dezentraler Chat fürs LAN
du meinst, dass das blinken häufiger wiederholt werden soll?
|
Re: Dezentraler Chat fürs LAN
Genau, dass das Blinken so lange wiederholt wird bis man das Programmfenster wiederherstellt.
|
Re: Dezentraler Chat fürs LAN
Und mal wieder gibts ein update:
Version 1.5.3 (27.06.05): ![]() 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. |
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 |
Re: Dezentraler Chat fürs LAN
Zitat:
|
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
|
Re: Dezentraler Chat fürs LAN
Zitat:
mfg, mh166 |
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... |
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'.
|
Re: Dezentraler Chat fürs LAN
Ich find die Symbole supi!!
|
Re: Dezentraler Chat fürs LAN
sieht echt professionell aus, die GUI!
|
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 |
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: |
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 |
Re: Dezentraler Chat fürs LAN
So, ich hab mir inzwischen ne homepage zusammengebastelt, bzw. ich tus immernoch. Schaut also mal vorbei auf
![]() und besucht auch mal das forum und sagt hallo :D |
Re: Dezentraler Chat fürs LAN
uiuiui da kriegt man ja augenkrebs :x
|
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? |
Re: Dezentraler Chat fürs LAN
ein flag mit dem man beides toggeln kann :zwinker:
|
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) :/ |
Re: Dezentraler Chat fürs LAN
Zitat:
|
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 ![]() 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 14:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz