Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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.

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

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

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

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

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

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

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.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.