Gaaanz simples chat Programm

  • Ersteller pfannkuchen2001
  • Erstellt am
pfannkuchen2001

pfannkuchen2001

Aktives Mitglied
Thread Starter
Dabei seit
17.02.2006
Beiträge
2.600
Reaktionspunkte
48
Hallo,

Ich würde gern ein wirklich simples chat programm schreiben. ein server soll ein winPC sein, ein client soll ein Mac sein. das programm soll einfach zum server connecten, wenn man den client anschmeisst.
die gui soll dann so 3 zeilen hoch sein- 2 als verlauf vom geschriebenen und eine als eingabezeile (also richtig simpel).

So kann mir da jemand anregungen geben, wie ich das nun schreiben könnt, also sprache (schwierig (?) wegen win und macplattform), und wie müsste so ein Programm praktisch arbeiten?


Hannes
PS.: sowas gibt es doch noch nicht oder?
 
Gegenfrage. Warum willst du extra einen Server schreiben der unter Windows läuft?

Hast du dich schon mit Sockets auseinander gesetzt?

Ich würde JAVA nehmen. Der Server wie auch Client solte dann unter MAC wie auch Windows laufen ;)

Bei einem simplen Chat-Programm reicht eine P2P Verbindung. Es sei den du willst die Möglichkeit haben mit mehreren zu Chaten (IRC)
 
Zuletzt bearbeitet:
naja, das wär doch am einfachsten, wenn ich einfach zu einem server connecte oder?

oder wie sollen sich dann die beiden rechner finden?

janosch schrieb:
Hast du dich schon mit Sockets auseinander gesetzt?
ääh nö?!

Hannes
 
Nimm einfach IRC als basis, und bastel nen Client dafür, der aufs nötigste reduziert ist. Spart man sich die arbeit am Server. Kannst ja auch OpenSource Clients anschauen und die dann Modifizieren (Colloquy, xChat Aqua..)
 
cool das ist gut!

(ich bin trotzdem noch vür weitere ideen offen!)
 
http://de.wikipedia.org/wiki/Socket

Mach dich erstmal mit dem Thema Sockets vertraut sonst brauchst du erst gar nicht anfangen mit der Netzwerkprogrammierung.

Wie steht es eigentlich um deine Programmierkenntnisse?

Soll der Server mehrere Clients bedienen können?
 
Zuletzt bearbeitet:
naja also eigendlich kam ich auf die idee, weil es ja diesen schicken "NAchrichtendienst" von Windoof gibt. und nun wollt ich auch irgendwie zurückschicken können. da dacht ich n ein kleines Chat PRgramm, da ich sowas nach einigen stunden nicht so gefunden hab, wie ich es gesucht hab - alle hatte so unglaublich viel schnickschnack, was kein mensch braucht.

Meine Programmierkenntnisse? Naja "Pascal/Delphi-lernend-im-Infoleistungskurs-12.Klasse" - also mit java hab ich nichts am Hut, aber ich hab sowiso vor mal eine Plattformunabhängige Sprache zu lernen (http://tinyurl.com/jwv5u)...

naja ich weis nicht so recht, ob der serve mehrere clients bedienen soll. Praktisch wärs ja schon, dann wären alle rechner im Haus verbunden... aber ich weis nicht wie dann die geforderten Programmierkenntnisse ansteigen?!

Gruß
Hannes
 
Tja .. dann musst du dich mit multiprcocessing oder multithreading auch noch ausseinander setzen.
 
zoologie brauchst du auch noch wegen der bugs. ;)
nein
lern erstmal c++ oder java und dann erst die projekte.
 
lernt man nicht am besten mit einem projekt?
 
Ich empfehle dir auch IRC zu benutzen und den mal mit einem Client in Java zu beginnen.

Am anfang connecte doch zu einem bekannten IRC Server wie "irc.quakenet.org".

Es gibt eine einfache Hilfsklasse in Java, welche dir die ganze Arbeit abnimmt um mit dem Protokoll umzugehen:

http://www.jibble.org/pircbot.php

Machs doch auf deren Basis, dann kannst du dich auf das wesendliche kümmern und musst dich nicht in das Protokoll einarbeiten.

--

Falls es nicht auf Anhieb klappt, vielleicht zuerst mit etwas einfacherem beginnen ...
 
Willst Du client und server schreiben? Oder einen Mac Client für den Windows Nachrichtendienst?

Alex
 
pfannkuchen2001 schrieb:
lernt man nicht am besten mit einem projekt?


Stimmt! Da Du mehrere OS nutzen willst, würd ich Dir Java empfehlen. Die Sache mit Server/Client kling dramatischer als es ist, allerdings wirst Du um Netzwerkwissen nicht umhinkommen:


[ISBN]3897211793[/ISBN]


ein sehr spannendes Buch, was die Basis für jede Form von TCP/IP-Netzwerk sehr anschaulich erläutert! Nehmen, lesen, ausprobieren, programmieren!
 
hoppelmoppel schrieb:
Tja .. dann musst du dich mit multiprcocessing oder multithreading auch noch ausseinander setzen.

Warum? Nicht zwangsläufig. Liegt halt am verwendeten System um Sockets zu benutzen. Bei Java gibt's afaik keine andere Möglichkeit, aber wenn du direkt C(++)/POSIX nimmst, brauchst du kein Multithreading.
 
below schrieb:
Willst Du client und server schreiben? Oder einen Mac Client für den Windows Nachrichtendienst?

Alex

Tcha daran hab ich auch schon gedacht, aber irgendwie weis ich da überhaupt nicht, wie man das anfangen könnte, und ob das überhaupt geht! (aber wenn du es vorschlägst, scheint das ja zu funktionieren...;))

UND: Irgendwie scheint das mit dem Nachrichtenübertragen (mit den nachrichtendienst) bei mir nicht wirklich zu funktionieren!
ich hab da mit dem kleinen Programm "samba message" rumgespielt, aber irgendwie findet er den Win rechner nur aller 20 mal scannen, und wenn er findet, dann kann ich kein text übertragen, "connection error" (Nachrichtendienst ist ANGESCHALTET)?!

naja desswegen wär mir ein minichatprog ganz lieb...

Hannes
 
-Nuke- schrieb:
Warum? Nicht zwangsläufig. Liegt halt am verwendeten System um Sockets zu benutzen. Bei Java gibt's afaik keine andere Möglichkeit, aber wenn du direkt C(++)/POSIX nimmst, brauchst du kein Multithreading.

naja, ich bezog mich ja darauf wenn er paralell mehrere clients bedienen will
 
hoppelmoppel schrieb:
naja, ich bezog mich ja darauf wenn er paralell mehrere clients bedienen will

Eben. Guck dir mal poll() bzw. select() an.

Mit mehreren Threads auf einem Anschluss rumzuackern, kann auch nach hinten losgehen. ;)
 
Naja select horcht ja imo auf einen socket und dann kannste eben was machen wenn darauf daten anliegen, und das läuft immer nur hintereinander ab. Aba was ich meine is, wenn du mehrere clients gleichzeitig bedienen willst reicht dir nen select ja nicht aus .. sondern solltest eventuell einen client mit einem prozess verwalten.

Also ich mein das so: nach nem conn accept forkst, und dann machste halt nen select auf den socket im tochter prozess.

aba ... da ganze widerspricht sich eigentlich mit ... "gaaanz simples chat propramm" ;)
selecten wäre da noch ok .. aba forken .. ja haste recht ;)
 
Zurück
Oben Unten