Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi _kleines_ Chat programm (https://www.delphipraxis.net/120344-_kleines_-chat-programm.html)

daniel-h 9. Sep 2008 18:51


_kleines_ Chat programm
 
erstmal hallo,
also ich bin ein ziemlicher frischling (hier im forum)
und auch in delphi also seit mir nicht böse, wenn ich dumme fragen stelle :oops: :lol:

okay zu meiner frage:
ich habe vor, mit den indy komponenten einen kleinen chat zu proggen.
aber ich weiss net wie ich anfangen und das alles coden soll :pale:
natürlich habe ich schon die sufu benutzt aber das aht mir noch nicht wirklich geholfen

es wäre sehr net, wenn mir einer oder mehrere mich unterstützen könnten

mfG DANIEL

BullsEye 9. Sep 2008 19:30

Re: _kleines_ Chat programm
 
Herzlich Willkommen in der DP :dp:

Schau mal bei den Demo Programmen da sollte soetwas dabeisein.


Allerdings ist das nen Stück Arbeit, nen Chat zu Programmieren, wenn du neu bist in Delphi. Vllt solltest du erst mit was kleinerem Anfangen ;)


EDIT: Hier ist ein Tutorial!

daniel-h 9. Sep 2008 20:03

Re: _kleines_ Chat programm
 
ja blutiger anfänger bin ich jetzt net war ein bisschen untertrieben ...ja egal...
ja das ist schon net schlecht aber ich kom da schon nicht weiter, weil ich diese sockets net habe (personal edition)
kann man sich dieses package vllt. irgendwo runterladen?

mfG Daniel

BullsEye 9. Sep 2008 20:05

Re: _kleines_ Chat programm
 
Ja, hier

smallsmoker 9. Sep 2008 21:19

Re: _kleines_ Chat programm
 
wenn du so neu bist solltest du vieleicht erstmal mit den winsockets anfangen die sind auch schon (meißtens) in delphi integriert,
wenn nicht findest du hier eine hilfe zum nachinstallieren sowie anfänger bis fortgeschrittenen tutorials
zur Netzwerk-Programmierung mit Delphi.
mfg smallsmoker

p.s.: kann dir das wirklich nur wärmstens empfehlen !

€: der link führt dich direkt zu einem turorial was erklärt wie man ein einfaches chat-programm bastelt.

daniel-h 10. Sep 2008 13:16

Re: _kleines_ Chat programm
 
hallöchen,

@ smallsmoker danke für den link :thumb: :thumb:
dieser trick, wo man die komponente in die ide einfügen kann ist wirklich super
genau das was ich suchte


das tut werde ich mir später gegen abend mal reinpfeifen weil ich noch ha's machen muss (hausaufgaben)
:kotz: :wall:


mfG DANIEL :hi:

daniel-h 10. Sep 2008 18:02

Re: _kleines_ Chat programm
 
hab hausaufgaben feddisch :P

und hab mich sofort an delphi rangemacht und was soll ich sagen?!!? :?:

habs geschaft
natürlich kann man noch sachen verbessern aber fürs erste reichts
hab den chat bei uns him netzwerk geteste und funktioniert bestens

mfG DANIEL

daniel-h 12. Sep 2008 11:58

Re: _kleines_ Chat programm
 
jetzt stell ich mir die frage, wie kann ich das so hinbekommen, das man sich erst registrieren muss und das man dann sein passwort und nickname vorher erst eingeben muss?

also ich meine es so:
benutzer registriert sich --> (mit delphi eine datenbank proggren?)

bevor der user chatten kann, wird er darauf aufgefordert passowrt und nick einzugeben.

eingabe senden an datenbank | wenn nick und passwort richtig | einloggen |
und wenn falsch fehlermeldung.



kann man das irgendwie umsetzen

mfG DANIEL

BullsEye 12. Sep 2008 13:21

Re: _kleines_ Chat programm
 
Eigentlich müsste das wie folgt gehen:

Jemand registriert sich (Eintrag in der OnlineDatenbank hinzufügen). Dann hast du nen Form (frmEinloggen). Da gibt er Name und Passwort ein, welche mit der Datenbank verglichen wird! Wenn die Eingaben richtig sind, kommt man zum nächsten Form (frmChat) ansonsten ne Fehlermeldung.
Einfach mal in der DP nach Datenbankprogrammierung suchen ;)

daniel-h 12. Sep 2008 14:41

Re: _kleines_ Chat programm
 
ich hab bei der sufu leider nichts geeignetes gefunden :?

würde es denn auch gehen, wenn ich einen server programmiere so wie bei den chat tutorials, nur das sich daruf kennwörter und nicknames befinden

ich hätte jetzt gedacht mit dem indy komponent TIDUserManager?

geht das vllt. auch?

daniel-h 14. Sep 2008 16:16

Re: _kleines_ Chat programm
 
ich hab bei funpic.de nen ftp server (standard)
und dann habe ich eben mysql aktiviert, da kann man datenbanken usw erstellen, kann das irgendwie weiter helfen?

Namenloser 14. Sep 2008 17:45

Re: _kleines_ Chat programm
 
Du kannst bei Funpic soweit ich wieß nicht von außen auf die Datenbank zugreifen (was auch ein Sicherheitsrisiko wäre). Wenn du dich mit PHP auskennst, kannst du aber damit ein Script schreiben, das die Benutzerdaten prüft.

Du kannst dann das Script in deinem programm mit den Parametern aufrufen: http://foobar.fo.funpic.de/script.ph...sswort=susi123. Wenn das Script dann z.b. "OK" zurückgibt, sind Passowrt und Benutzername gültig.

Ist allerdings keine 100%ig sichere methode, weil ich z.B. über die Hosts-Datei die Amfrage auf einen eigenen Server umleiten kann, der imemr OK zurückgibt. Aber ich denke mal, das ist in deinem fall zu vernachlässigen (komtm drauf an woran du arbeitest).

Denke bitte daran, die passwörter in der DB nicht im Klartext zu speichern, sondern z.B. per md5 zu hashen und dann nur den hash zu prüfen.

daniel-h 14. Sep 2008 17:53

Re: _kleines_ Chat programm
 
also dass das nicht gerade eine sichere methode ist, wusste ich schon.
brauch es auch net, also ich meine ich werde das net öffentlich machen, das ist nur für meinen freundeskreis.
aber leider kann ich net mit php umgehen, könntest du mich unterstützen?

Balu der Bär 14. Sep 2008 18:46

Re: _kleines_ Chat programm
 
In der Tutorial-Sparte des Forums gibt es einen Thread "Einen CHat mit den Sockets programmieren". Da werden Sie geholfen.

daniel-h 14. Sep 2008 19:30

Re: _kleines_ Chat programm
 
ich hab mir as tutorial schon tausend mal durch gelesen...
mein chat habe ich damit ja gemacht
nur noch an ein paar stellen verbesser aber ich sehe da nirgends was, was mit php zu tun hat.
oder ich bin zu blöd :lol:

Namenloser 14. Sep 2008 20:21

Re: _kleines_ Chat programm
 
Die meisten Chat-Tutorials sind auf Chats im lokalen netzwerk ausgerichtet. Im LAN lohnt sich ein Anmeldevorgang normalerweise natürlich nicht. Was du machen willst, ist sicher ein Chat über das Internet.

Ansatz:
- PHP-Script auf Gratisserver prüft die Logindaten
- Wenn die Logindaten korrekt sind wird die IP-Adresse mit der eindeutigen ID des Nutzers in eine Liste/Datenbank geschrieben
- Alle angemeldeten Benutzer pollen regelmäßig diese Liste und prüfen, ob Nutzer sich angemeldet oder abgemeldet haben
- Wenn der Nutzer Bob die Nutzerin Alice anschreibt, wird eine Nachricht an an die Ip-Adresse von Alice verschickt. Auf dem Computer von Alice muss dafür ein Server auf einen bestimmten Port lauschen. Wenn eine eingehene verbidnung ankommt, nimmt der Server auf Alice' Computer dann (ggf. nach einer Überprüfung) die verbindung an und schickt eine Bestätigung über die verbindung an Bob.
- Über diese verbindung können dann nachrichten ausgetauscht werden

Nachteil:
- Wenn Alice hinter einem Router sitzt, ist Alice' Computer nicht direkt mit dem Internet verbunden. Das heißt, über die von außen sichtbare IP-Adresse ist nur der Router erreichbar. Deshalb muss der Router so eingestellt werden, dass er bestimmte Pakete an Alice' Computer weiterleitet (Portforwarding). Diese Einstellung muss entweder manuell im Router-Menü eingestellt werden (heißt, deine Nutzer dürfen keine totalen DAUs sein), oder per UPNP (falls dieses aktiviert ist). Ich habe bis jetzt aber noch keine funktionierende Lösung gefunden, um mit Delphi per UPNP einen port weiterzuleiten. Wenn du eine funktionierende Lösung findest, lass es mich wissen :mrgreen:
- Es können imemr nur 2 Leute miteinander chatten.

Mögliche Abhilfe:
- Zentraler Chat über einen zentralen server: Hierbei bracuht keienr der Nutzer einen lokalen Server um verbindungen anzunehmen, sondern alle Nutzer verbinden sich mit einem von dir administrierten, zentralen Server. Dieser Server leitet dann die eikommenden nachrichten an die Clients weiter.

Für letzteres musst du aber entweder einen Root/V-Server anmieten (nicht ganz billig), weil du ein Programm auf dem Server ausführen musst (bei Funpic geht das nicht). Du kannst auch deinen eigenen Rechner als Server einrichten (musst dann halt den Port im Router weiterleiten, dafür müssen deine Nutzer das nicht), was aber den nachteil hat, dass die geschwindigkeit bei privaten DSL-Anschlüssen nicht so berauschend ist.

daniel-h 14. Sep 2008 20:58

Re: _kleines_ Chat programm
 
bis jetzt habe ich meinen pc immer als lokalen server benutzt.
also ich habe das serverprogram immer im hintergrund benutzt.
der nachteil ist halt, für meine nutzer, der server ist nicht immer erreichbar, also nur wenn ich das programm am laufen habe.

jokerfacehro 15. Sep 2008 11:14

Re: _kleines_ Chat programm
 
hey danielH

du musst dir ein eigenes protokoll ausdenken, mit welchem du einzelne befehle an den server schicken kannst.

ich hab vor 2 jahren nen chat programmiert, allerdings mit TServerSocket und TClientSocket, eine alte version davon ohne source findest du hier.

ich lad den source nacher mal hoch. anhand von beispielen lernt man schneller :)

der chat hat ne userliste, mute,kick,ban und pm funktion

und jeder chatserver den man aufmacht, wird auf einem masterserver per phpscript eingetragen

desweiteren ist spamschutz, smileys.


edit: der chat hat einen zentalen chatserver, dieser kann auf dem eigenen rechner oder einem root server laufen, aber wie gesagt
---> wenn der server hinter einem router läuft muss portforwarding an sein


ich schätze das ist auch die beste lösung: ein masterserver im Inet für die derzeitige ipadresse und port des chats, der chatserver und beliebig viele clients, wenn die clients keine server kompo verwenden, brauchen diese auch kein portforwarding. wenn man allerdings eine direktdatenübertragung zwischen 2 clients machen will z.B. bilder rüberschicken wirds problematisch.

man kann den server port auch von innen öffnen, indem man sagt, ich will eine verbindung über den server port nach außen z.B. zu port 80 aufbauen.
sooo, jetz muss der port auch vom router geöffnet werden und der port bleibt bis zum timeout des routers offen je nachdem 2minuten, somit kann man das portforwarding umgehen ist allerdings keine feine lösung

smallsmoker 15. Sep 2008 11:57

Re: _kleines_ Chat programm
 
erstmal sollte er das tut durcharbeiten das ich ihm gegeben habe das ist fürs erste genug stoff :P
mfg smallsmoker

jokerfacehro 15. Sep 2008 15:18

Re: _kleines_ Chat programm
 
Liste der Anhänge anzeigen (Anzahl: 1)
hier is ma mein chat als bsp

zum compilieren braucht man CoolTrayIcon und die JvGIF, schon so lange her :mrgreen:

daniel-h 15. Sep 2008 16:02

Re: _kleines_ Chat programm
 
der wäre als beispiel bestimmt gut aber ohne die se komponente, siehts sclecht aus. :wink:

jokerfacehro 15. Sep 2008 16:13

Re: _kleines_ Chat programm
 
wieso ?

es ist alles genauso, bis auf das senden und empfangen, was du ja bereits geschaft hast, der rest ist kompo-unabhängig.

mach nen befehl zum einloggen, wenn login korrekt, gibt der server dem user ne id.diese id speichert der server zusammen mit den anderen userdaten und wenn der user was schreibt schickt er immer seine id mit. somi haste ne eindeutige identifizierung, du kannst den user auch anhand des sockets identifizieren, wie du willst, gibt unendlich viele möglichkeiten :D

edit: hab grad nen chat server laufen, wer will kann joinen und fragen stelln wenn er will :mrgreen:

name: blumenhund's chatserver

daniel-h 15. Sep 2008 16:20

Re: _kleines_ Chat programm
 
mmmh...
also ich meine, wenn ich entweder die server.dpr oder die client.dpr öffnen möchte kommt die meldung, dass ich diese komponente halt net habe

oder muss ich das in meinem fast chat irgendwas einbinden :?: :?:

daniel-h 15. Sep 2008 16:21

Re: _kleines_ Chat programm
 
Zitat:

Zitat von daniel-h
mmmh...
also ich meine, wenn ich entweder die server.dpr oder die client.dpr öffnen möchte kommt die meldung, dass ich diese komponente halt net habe

oder muss ich irgendwas in meinem fast chat einbinden :?: :?:


jokerfacehro 15. Sep 2008 16:30

Re: _kleines_ Chat programm
 
Zitat:

Zitat von jokerfacehro
zum compilieren braucht man CoolTrayIcon und die JvGIF, schon so lange her Mr. Green

http://blumenhund.afischi.de/downloa...ChatClient.rar hier ist der compilierte client

http://blumenhund.afischi.de/downloa...ChatServer.rar hier ist der compilierte server

jokerfacehro 15. Sep 2008 16:31

Re: _kleines_ Chat programm
 
Zitat:

Zitat von jokerfacehro
zum compilieren braucht man CoolTrayIcon und die JvGIF, schon so lange her Mr. Green

http://blumenhund.afischi.de/downloa...ChatClient.rar hier ist der compilierte client

http://blumenhund.afischi.de/downloa...ChatServer.rar hier ist der compilierte server

Namenloser 15. Sep 2008 18:07

Re: _kleines_ Chat programm
 
Habt ihr beide auf Zitat statt Editieren gedrückt? o_O

daniel-h 15. Sep 2008 18:11

Re: _kleines_ Chat programm
 
ich ja :lol: :lol:

jokerfacehro 15. Sep 2008 18:26

Re: _kleines_ Chat programm
 
ich nich siehe oben mein zitat im beitrag mit dem anhang
A
|
|

daniel-h 16. Sep 2008 17:01

Re: _kleines_ Chat programm
 
ich würde das gerne mit einem php script auf funpic.de machen aber ich kann kein php.

hab auch schon gegoogelt aber nichts gefunden.
kann mir vllt jemand helfen :roll:

ich habe auch immer andere probleme :|

IceBube 16. Sep 2008 17:46

Re: _kleines_ Chat programm
 
Hallo!

Ich hab jetzt nicht alles durchgelesen, jedoch weiß ich dass du einen Chat bauen willst(über das Internet).

Da war ich auch einmal ;), mit dem Portforwading bin ich nicht weiter gekommen, also habe ich mir gedacht ich mach das einfach über irc!

Und das ist mein Chat-Programm Hier im Forum suchentalkbox

Das Programm verbindet sich mit Hilfe von der "Tidirc" Komponente zu einen Irc-Server im Internet, und erstellt einen Channel - in welchen man dann chatten kann.

^Den Source findest du unter:
http://www.delphi-forum.de/topic_Tal...137_84812.html

*Benötigt werden:
Tidirc(Indy) "Wichtig! Einbinden von "idContext" zu der Uses list"
(Alphaskins Light Version) "Nicht umbedingt notwendig!"

Also, ich hoffe das^ hilft dir, ist besser als es über Php zu machen ;)

lg

jokerfacehro 16. Sep 2008 18:46

Re: _kleines_ Chat programm
 
Zitat:

Das Programm verbindet sich mit Hilfe von der "Tidirc" Komponente zu einen Irc-Server im Internet, und erstellt einen Channel - in welchen man dann chatten kann.
brauchste aber nen irc server bzw bist von nem fremden irc server abhängig.


Zitat:

ich würde das gerne mit einem php script auf funpic.de machen aber ich kann kein php.

hab auch schon gegoogelt aber nichts gefunden.
kann mir vllt jemand helfen Rolling Eyes

ich schick dir ma mein masterserver-script, is ziemlich einfach gestrickt:

-wan ipadresse ausgeben
-server in die liste aufnehmen und mit fsockopen eine verbindung aufbauen um zu testen ob der server ausm inet erreichbar ist.
-server aus der liste löschen, wenn fsockopen fehlschlägt
-serverliste ausgeben

smallsmoker 16. Sep 2008 18:50

Re: _kleines_ Chat programm
 
wenn ich mich nich irre wurde in #20 doch ein chat gepostet der auch über php läuft :)
mfg smallsmoker

daniel-h 16. Sep 2008 19:15

Re: _kleines_ Chat programm
 
ja, schon
hab den chat auch benuzt
aber mir geht es ja darum, nen igenen chat zu machen und nicht einfach einen zuübernehmen

mfG DANIEL

Namenloser 16. Sep 2008 21:05

Re: _kleines_ Chat programm
 
Also ich würde auf keinen fall mehr als die Anmeldung über PHP laufen lassen, weil du imemr wieder neue Requests starten müsstest, weil PHP-Scripte meistens nur eine Laufzeut von ein paar Sekunden haben. Diese andauernden neuen Requests erzeugen viel Traffic und CPU-Last und sind deswegen bei den meisten Hostern nicht erlaubt.

Gerade bei Funpic solltest du aufpassen!
Ich hatte da mal einen Account und habe unwissentlich mit einem Script eine Datei knapp über der "maximal erlaubten dateigröße" erstellt (die glaube ich ca. 2 mb beträgt aber nirgendwo definiert war), und mein Account wurde von heute auf morgen ohne Vorwarnung komplett gelöscht.

jokerfacehro 16. Sep 2008 22:19

Re: _kleines_ Chat programm
 
lest euch meinen beitrag ordentlich durch dann seht ihr dass das anders funzt als ihr denkt xD

der masterserver ist ein phpscript auf einem webserver wo alle chatserver registriert werden.

der client selber bekommt vom masterserver nur die chatserverliste.
dann verbindet sich der client zu dem chatserver und meldet sich da mit passwort und login an, wenn er bereits registriert ist, ansonsten ist er trial ohne rechte

daniel-h 17. Sep 2008 12:59

Re: _kleines_ Chat programm
 
das stimmt allerdings...
ich hab mich mal mit dem php script beschäftigt und auch mit dem chat
da war nichts mit cpu-last oder probleme mit dem traffic
wollte ich nur mal so sagen
mfG DANIEL

daniel-h 18. Sep 2008 21:21

Re: _kleines_ Chat programm
 
mein chat funzt jetzt auch über inet :hello: :dancer2:
:cheers:

BullsEye 18. Sep 2008 21:23

Re: _kleines_ Chat programm
 
Zitat:

Zitat von daniel-h
mein chat funzt jetzt auch über inet :hello: :dancer2:
:cheers:

Bekommen wir auch noch das Ergebniss zu sehen?^^

daniel-h 18. Sep 2008 21:27

Re: _kleines_ Chat programm
 
ja morgen
in alter frische :mrgreen: :tongue:
bin müüüüde *gäähn*


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 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