Archelaus Geschrieben 7. Juli 2009 Geschrieben 7. Juli 2009 Hallo, ich bin neu hier und in C++ bin ich auch noch recht am Anfang, die Grundlagen jedoch kann ich "schon". Im moment versuche ich zur Übung ein Chatprogramm zu schreiben. Bisher sieht es so aus: #include <iostream> #include <conio.h> using namespace std; main() { string Username; string EnIP; cout << "Login..." << endl; cout << "Gebe deinen Usernamen ein." << endl; cin >> Username; cout << "Hallo " << Username << ", mit wem willst du sprechen? (IP Eingabe)" << endl; cin >> EnIP; cout << "Verbindungs aufbau zu " << EnIP << " ..." << endl; } Jedoch weiß ich jetzt nicht wie ich dann mit diesem anderem eine Verbindung aufbauen soll und der dann auch etwas reinschreiben kann dammit wir dann halt chatten können. Gegoogelt hab ich auch schon, allerding wurde ich nicht fündig. Hoffe ihr könnt mir helfen. mfg Archelaus Zitieren
Klotzkopp Geschrieben 7. Juli 2009 Geschrieben 7. Juli 2009 Ich glaube nicht, dass das eine gute Idee für eine Anfängerübung ist. Chat bedeutet Netzwerkprogrammierung, und das sind zunächst mal Sockets. Sockets sind C. Da gibt's keine Klassen, und du musst mit Zeigern und Puffern hantieren, es sei denn, du benutzt ein Framework wie Boost.Asio, das ist aber auch nicht gerade Anfängerstoff. Zitieren
Archelaus Geschrieben 7. Juli 2009 Autor Geschrieben 7. Juli 2009 Hallo und danke erstmal für deine Antwort, es sollte ein "simples" Dos-Chatprog werden. Und so der noob bin ich auch wieder nicht, ich brauche lediglich zu wissen wie es gehen kann und nach welchem Prinzip (und vieleicht auch ein nettes Beispiel^^). mfg Archelaus Zitieren
TDM Geschrieben 7. Juli 2009 Geschrieben 7. Juli 2009 Chat bedeutet Netzwerkprogrammierung Und außerdem Multithreading. :floet: Beides gleichzeitig in C -> Horror für Anfänger. Zitieren
Archelaus Geschrieben 7. Juli 2009 Autor Geschrieben 7. Juli 2009 Ich bin doch gerade dabei C++ zu lernen also wieso sagt ihr alle das es für Anfänger GARANTIERT NICHT geeignet ist? Es wäre echt nett wenn ihr mir wenigstens versuchen würdet es zu erklären wie es geht, mal sehen was dabei rauskommt. THX in Advance. mfg Archelaus Zitieren
flashpixx Geschrieben 7. Juli 2009 Geschrieben 7. Juli 2009 Ich bin doch gerade dabei C++ zu lernen also wieso sagt ihr alle das es für Anfänger GARANTIERT NICHT geeignet ist? Weil es so ist. Ich kapiere nicht, warum jeder Anfänger direkt mit "ich will einen Chat / Server usw" programmieren ankommt. Fangt doch bitte erst mal bei den Grundlagen an: Was sind Zeiger, Arrays, Struct, Klassen, usw Aber wenn Du meinst, dass Du das alles beherrschst, bitte: Boost.Asio Phil Zitieren
TDM Geschrieben 7. Juli 2009 Geschrieben 7. Juli 2009 Aber wenn Du meinst, dass Du das alles beherrschst, bitte: Boost.Asio hmm, damit man es versteht, wie das mit den Sockets funktioniert, würd ich nicht gleich zu Boost raten, sondern viel mehr die C-Grundlagen, die dahinter stecken, erläutern: Socket Programmierung Aber ist natürlich jedem selbst überlassen. Zitieren
flashpixx Geschrieben 7. Juli 2009 Geschrieben 7. Juli 2009 hmm, damit man es versteht, wie das mit den Sockets funktioniert, würd ich nicht gleich zu Boost raten, sondern viel mehr die C-Grundlagen, die dahinter stecken, erläutern: Socket Programmierung mmmh, also ich bin da ja auch lieber für die Boost, aber das liegt daran, weil sie mir mehr zusagt und ich durchaus weiß wie Socket funktionieren, aber wenn wir gleich dabei sind, warum nicht noch Multithreading und synchrone bzw asynchrone Datenübertragung oder MPI Bibliothenken wie OpenMPI, MPI CH 2 oder MS-MPI. Ist doch ganz leicht für einen Anfänger :floet: *scnr* Phil Zitieren
Archelaus Geschrieben 7. Juli 2009 Autor Geschrieben 7. Juli 2009 OK, ich merk schon das wird um einiges komplizierter als ich dachte... Da ich jetzt mich jetzt erstmal etwas mit Socketprogrammierung beschäftigen werde, würde ich es echt nett finden wenn jemand ein Beispiel geben kann wie es dann so in etwa aussehen könnte das ich mich dann halt mit dem anderen PC verbinde. Dann könnte ich es halt nach meinen Vorstellungen "umgestalten", etc. mfg Archelaus Zitieren
flashpixx Geschrieben 7. Juli 2009 Geschrieben 7. Juli 2009 Da ich jetzt mich jetzt erstmal etwas mit Socketprogrammierung beschäftigen werde, würde ich es echt nett finden wenn jemand ein Beispiel geben kann wie es dann so in etwa aussehen könnte das ich mich dann halt mit dem anderen PC verbinde. Wie wäre es mit Multi- und Unicast? Bevor Du Sockets programmierst, lerne erst einmal die notwendigen Grundlagen bezüglich Netzwerktechnik und -aufbau. Z.B. Subnetzmasken, Host- / Broadcast- / Netzadresse, Routing, UDP, TCP, IP, Multi- und Unicast. Beispiel für einen Chat: Boost C++ Libraries - doc/html/boost_asio/example/chat/chat_message.hpp Boost C++ Libraries - doc/html/boost_asio/example/chat/chat_client.cpp Boost C++ Libraries - doc/html/boost_asio/example/chat/chat_server.cpp Dann könnte ich es halt nach meinen Vorstellungen "umgestalten", etc. Aha und die wären: Dein im ersten Post genanntes Chatprogramm!? Wie wäre es, wenn Du einmal bei Grundlagen beginnst z.B. wie Du eine Dezimalzahl in Hexadezimal-, Octal- und Binärsystem umrechnest. Oder eine einfache Oberfläche für Dein Programm entwirfst. Außerdem wäre das OOP Konzept, wenn Du schon unter C++ arbeitest, zunächst zu lernen Phil Zitieren
oxygen Geschrieben 8. Juli 2009 Geschrieben 8. Juli 2009 Also ich würde dir vorerst von einem Chat auch abraten. Ich beschäftige mich schulisch seit mitlerweile fast 2 Jahren mit C++ und Programmierung und bin bei weitem auch noch nicht so weit, dass ich mir zutrauen würde, einen Chat zu programmieren. Beschäftige dich, wie oben schon erwähnt erst mal mit den Grundlagen wie Strukturen, Klassen, Zeiger, Objekte und lern objektorientiertes Programmieren, da kannst dann schon ganz tolle Sachen mit machen. Aber um ein Programm zu schreiben, dass auf ein Netzwerk zugreift, benötigt es weit mehr als nur Programmieren zu können. Du musst ja schließlich auf die richtigen Teile des Netzwerks zugreifen und deine Nachrichten richtig "verpacken" und da wartet nochmal sehr viel input, bis man das mit einem Programm kombinieren kann. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.