Internet Chat mit C++
-
Google hat mir nicht viele Informationen explizit zu diesen Thema ausgespuckt, also dachte ich, dass es ich mal in diesem Forum versuche...
Wie der Titel sagt, plane ich eine art simplen Chat zu entwerfen. An diesen habe ich einige forderungen:
Er sollte auf Windows XP (sp2) lauffähig sein
Er sollte in C oder C++ programmiert sein (weil ich hier grundwissen habe, andere Ideen sind natürlich wilkommen)
Er sollte über das Internet funktionieren
Er sollte ohne Server auskommen (also ein Client verbindet sich mit einen anderen Client (peer to peer?))
Er sollte für 2 Teilnehmer aufgebaut sein (mehr wäre natürlich Luxus... aber unnötig)Zur Umsetzung habe ich mir Folgendes überlegt:
Der Chat besteht aus 2 Programmen, einen Listener und einen Shouter:
Der Shouter ist ein Dosfenster in dem der User nichts als z.B. einen blinkenden Balken oder irgend eine Form von Eingabeaufforderung (etwa wie bei dem befehl scanf) sieht. Wenn er nun etwas in dieser Eingabeaufforderung hineinschreibt und mit Enter bestätigt, soll der Text nun auf dem Listener eines anderen Computer (welcher vorher in der config datei des shouters mittels Ip Adresse und einen Port festgelegt wurde) angezeigt werden.Der Listener ist ebenfalls ein Dosfenter in dem die eigenen und die vom Chatpartner geschriebenen Strings mit einer Zeitangabe angezeigt werden.
Was ich nun brauche sind Ideen und Hinweise wie man es hinbekommt eine Internetverbindung zwischen 2 Hosts herzustellen.
-
Schau dir mal SOCKETs an...
-
Versuch es für den Anfang mal mit den Tutorials von http://www.c-worker.ch
-
Wenn ich das richtig verstanden habe, sind SOCKETs etwas wie TCP/IP Verbindungen/Kanäle die vom Betriebssystem verwaltet werden. Demnach muss ich nach C++ Befehlen oder Funktionen suchen welche diese SOCKETs erstellen bzw. vom Betriebssystem (in diesem fall Windows) anfordern. Diese werde ich dann je nach Funktionsbeschreibung in den Script von dem Shouter und dem Listener einbauen, habe ich das soweit richtig verstanden oder bewege ich mich in eine ganz falsche Richtung? o0
Sry wenn die Fragen zu anfängerhaft sind aber ich möchte gerne sicher gehen bevor ich falschen bzw. in meinem fall nutzlosen code niederschreibe^^
edit: danke für die schnelle hilfe an Quellcode und Blaaa
(sry hab deinen link erst jetzt entdeckt)
-
Wenn du dich ein wenig mit dem Thema dann auskennst und noch platformunabhängig werden möchtest, dann schau dir mal http://www.boost.org/ an. Das ist eine allgemeine Bibliothek mit vielen, vielen Hilfsmitteln. Unter anderem Asio:
http://www.boost.org/doc/libs/1_35_0/doc/html/boost_asio.htmlAber das ist wirklich erst für später. C-Worker sollte vorerst mal reichen

Grüssli
-
Sry dass ich mich nemme gemeldet habe: Danke nochmal an die Antworten, ich habe mich da durchgekaut aber doch letztendlich für Java entschieden, da ich es sich als "einfacher"(bitte nicht hauen) erwies... Aber hauptsache das Programm läuft!

-
quigonjinntte schrieb:
Sry dass ich mich nemme gemeldet habe: Danke nochmal an die Antworten, ich habe mich da durchgekaut aber doch letztendlich für Java entschieden, da ich es sich als "einfacher"(bitte nicht hauen) erwies...

Da musst du dich nicht schämen, oder entschuldigen.
Mal abgesehen von dem hier:

Aber hauptsache das Programm läuft!
Das ist das beste, was du gemacht hast. Du hast jetzt nicht probiert etwas der Sprache aufzuerzwingen, sondern du hast die Programmiersprache genommen, welche am besten dein Problem löst. Und genau das ist das richtige vorgehen.
Eine Programmiersprache ist ein Werkzeug und du passt ja nicht das Werkzeug auf dein Problem an, sondern du nimmst ein Werkzeug, dass zu dein Problem löst.
Man nimmt ja auch keinen Schraubenzieher, um einen Nagel in die Wand zu schlagen. Es geht zweifellos, aber ob es so geschickt ist?