Chat selber programmieren

Manuel_21

Cadet 3rd Year
Registriert
Jan. 2003
Beiträge
40
Hi zusammen,

nachdem ich hier schon ein wenig gesucht habe und auch unter Google noch nicht 100%ig zufrieden gestellt worden bin, eröffne ich diesen Thread mal in der Hoffnung, dass ihr mir vielleicht weiter helfen könnt.

Folgende Aufgabe möchte ich lösen:

Einen eigenen Chat für´s Internet programmieren.

- Teilnehmeranzahl dürfte sich wohl im unteren Bereich befinden, da es sich vorwiegend um meinen Freundeskreis bzw. um meinen Tennis-Verein dreht.

- Es soll einen normalen Login geben und kleinere Goodies, doch für mich steht erstmal die Realisation an sich im Vordergrund, sprich Verbindung herstellen zwischen den Clients etc.

Das Aussehen usw. soll man ja bekanntlich erst später lösen ;-)
Ich bin mir im Moment noch nicht mit der Programmiersprache sicher, in der ich das lösen soll. Bei PHP trifft man überwiegend auf Abneigung, weil es relativ umständlich ist und ggf. zu hohen Wartezeiten führen kann. Welche Sprachen empfehlt ihr? Ich kenn mich eigentlich mehr mit den bekannten aus wie VB, C++ und ähhhh COBOL ;-) (aber das auch nur firmenbedingt)

Weiterhin hab´ ich unter Google noch kein wirklich ausführliches Tutorial gefunden, dass mich zufrieden stellt.

Könnt ihr mir vielleicht helfen?

Vielen Dank schon!!!

Gruss
Manuel
 
Sag mal, ist das dein ernst?

Was macht das Denn für einen unterschied in welcher sprache Du es machst? ob c#, delphi, vb oder sonstwas - sind doch alle gleich gut geeignet für ein kleines chattool. nimm doch das was du am besten kannst.

Wenn du nun php ins spiel bringst, das ist schon was anderes - soll das Programm nun ein webinterface haben oder lokal laufen?

Am Einfachsten dürfte das projekt meiner meinung nach in java hinzubekommen sein, je nach lust und laune als applet oder stand-alone.

Und was für ein tutorial du dir wünscht ist mir auch schleierhaft - such dir einfach die info wie du in deiner lieblingssprache ports öffnen und daten senden/empfangen kannst, überleg dir ob das system serverbasiert oder p2p laufen soll und los gehts - wenn das steht fehlt nur noch ne gui und ein paar geneigte chatter die dein machwerk nutzen wollen.

mfg
 
also wenns ein webchat werden soll kommt nur perl/cgi oder php in frage.

das problem bei sowas ist natürlich das die viel traffic verbrauchen und die meisten hoster chats verbieten.

aber vom programmieren her ist das in php garnet schwer.
quasi wie ein gästebuch. sobald jemand was schreibt wird es in ne textdatei oder datenbank geschrieben. des fenster wo dann das ganze geschrieben wird muss dann entweder in realtime ablaufen, oder eben alle paar sekunden neugeladen werden.

bei anderen, richtigen programmiersprachen wie c++ und serverbasierend geht das genauso.
das programm muss dann über nen bestimmten port auf den entsprechenden server zufgreifen und den text in ne textdatei/datenbank eintragen.
und eben um es auszugeben das ganze auch wieder auslesen.

p2p basierend sieht es anders aus, wird schwieriger sowas dann zu lösen.
 
Zuletzt bearbeitet:
@Whiteshark:

Ja...das Problem hab ich jetzt schon öfter gelesen, dass es mittels PHP zu einem hohen Traffic kommen kann. :(

@FieserKiller
Mit Tutorial meinte ich ein stinknormales Tutorial, in dem jemand quasi seine Aufzeichungen mal niedergeschrieben hat, damit man sich das mal anschauen kann, wie so etwas abläuft, weil mit Ports öffnen und schliessen hab ich bisher nichts gemacht, aber realisieren würde ich es trotzdem gerne unabhängig davon, ob der Chat später genutzt wird oder nicht. Das steht ja auf nem ganz anderen Blatt, oder?
 
eröffne doch einfach einen channel bei mIRC und das wars(zumindest wäre das die leichteste variante) :rolleyes: aber wenn du ein richtigen CHAT haben willst ist ja deine sache
 
^^ich programmier grad nen chat für mein forum.

Da ist der Login über das Forum gelöst, aber beim Rest kannste gerne auf meine Arbeit zurückgreifen.

Allerdings arbeite ich mit PHP ;)

Falls es dich interessiwert musste einfach schreiben.
 
Ich habe sowas mal vor ner Ewigkeit mit Delphi gemacht. Einfach ein paar Komponenten klicken und man kann schon fast loslegen. Über Socket-Programmierung musst Du da auch kaum was wissen. Für C++ findet man auch schnell ein paar einfach zu benutzende Klassen, wenn man was mit Sockets machen will.

Du solltest das ganze auf jeden Fall Client-Server-basiert machen. Peer To Peer ist kaum anders, bringt allerdings eine ganze Menge interessanter Probleme mit sich. Zur Realisierung, alle Clients verbinden sich mit dem Server. Wenn jemand etwas schreibt, dann sendet der Client das an den Server. Der wiederum sendet das einfach an alle Clients, die er kennt. Das war's schon für nen simplen Chat. Interessanter wird es, wenn Du auch noch sowas wie Dateitransfer, verschiedene Schriftfarben und Fonts etc. haben willst.

Das eigentliche Problem, dass Du aber bei dieser Lösung haben wirst ist, wie die Clients den Server finden. Zumal, auf einem Webserver von irgendeinem Hoster wirst Du kaum ein C++ Programm laufen lassen dürfen.
 
Hi...

hmm...so langsam bekomme ich das Gefühl ich sollte erstmal kleinere Brote backen. :rolleyes:
Wobei ich denke das Problem, dass ich im Moment noch habe ist das, dass ich noch nie ne Art Netzwerkprogrammierung gemacht habe. Sprich Verbindungen über P2P oder C / S -Struktur hergestellt habe.
Ich habe schon oft bei unseren Buchhändlern nach guten Büchern gesucht. Das Problem ist, dass "Netzwerkbücher" sich logischerweise auch nur mit dem Aufbau von Netzen beschäftigen (Übertragung via TCP / IP, Paketgrösse etc.) und bei den C++, VB und PHP-Büchern habe ich noch nichts gefunden. Gibt es da nicht vielleicht ein Tutorial mal drüber??? :(
Ich bin ja gewillt zu lernen, aber irgendwie sind gute Quellen in diesem Bereich rar gesäät. Zumindest habe ich das Gefühl.

@PCW: Ja klar würde ich mir den Code gerne mal anschauen. Vielleicht kannst Du ihn mir mal mailen. Ich schicke Dir meine Addy.

Gruss
Manuel
 
Schau Dir mal das hier an:

http://www.codeproject.com/internet/#Beginners

Vor allem die Punkte Simple TCP client und Simple TCP server sollten interessant für Dich sein. Den Thread-Kram solltest Du beim Server erstmal großzügig übersehen.

Ansonsten gibt eine Googlesuche nach C++, Sockets und Tutorial eine Menge guter Seiten. Unter anderem findest Du da auch einfache Socket-Klassen, die Du benutzen kannst.
Falls Du mit VisualStudio arbeitest, würde ich Dir raten, die Finger von den MFC-Socketklassen zu lassen, die arbeiten recht eigenartig - auf jeden Fall nicht so wie man es erwarten würde. Hatte schon genug Ärger damit.
 
Hey das sieht gar nicht so schlecht aus. Mein Englisch ist zwar nicht das allerneueste ;) .... aber das wird schon funzen hoff´ ich mal :rolleyes:

Falls noch jemand ein deutsches Tut. kennt würde ich mir das allerdings auch mal anschauen :D
 
Bei Zeiten will ich mir auch einen kleinen mit PHP programmieren, um den Traffic aber so gering wie möglich zu halten, werde ich wohl auf Java Script zurückgreifen und auch sonst ein wenig tricksen. :p

Ansonsten ist natürlich Java ideal für so eine Anwendung.
 
Hmm...mit Java hab ich noch nicht wirklich viel gemacht (eigentlich gar nichts **schäm**), aber dann wird es ja jetzt wohl höchste Zeit damit anzufangen. ;)
 
Ok ich versuche gerade das selbe.

Wie kann ich es denn reallisieren, dass das Fentser in Realtime abläuft und dass es nicht so viel Traffic verbraucht?
 
Man kann ein Java-Applet programmieren, dass die Nachrichten direkt zu den anderen Teilnehmern sendet und somit keine Daten über den Server laufen. Auf dem Server selbst speichert man dann nur die IP und sonstige Daten der Teilnehmer.
 
Hmmm da werde ich mich wohl erstmal schlau lesen müssen.
Ein Problem hab ich noch. Wenn ich bei einem mit PHP geschriebenen Chat den Text in einer DB oder in einer txt speicher hab ich das Problem , dass User die sich gerade erst einloggen den schon vorher geschriebenen text sehen können. Das will ich verhindern. Man sieht es ja oft bei vielen Chats das das Fenster erst leer ist bevor die dann geschriebenen Nachrichten aufrücken.
 
Speicher dir einfach zu einem User den Zeitpunkt, wann er sich zuletzt eingeloggt hat und lass ihn nichts lesen, was davor geschrieben wurde. ;)

Gleiches gilt dann natürlich für das Betreten von Chaträumen.
 
ich würde das nicht als problem sehen.
mich nervt es bei chats, dass man reinkommt und nie weiß worum es gerade geht.

aber wenn schon einige zeilen da sind, fänd ich das deutlich besser.
ist aber wohl geschmackssache.


aber ansonsten würde es so gehen wie pcq schon erläutert hat
 
Das erscheint mir ein wenig umständlich. wäre es nicht auch eine möglichkeit die nachrichten in einer session zu speichern?
 
Zurück
Oben