Messenger Client

Alles rund um die Programmierung mit Qt
Antworten
Barcardi
Beiträge: 32
Registriert: 14. Mai 2010 03:00
Wohnort: München

Messenger Client

Beitrag von Barcardi »

Moin Moin,

bin wieder da =).
Ich wollt mir ein eigenen Messenger Clienten programmieren, damit ich meine Programmierfähigkeiten testen kann und durch Projekte lernt man immer mehr als durch Tutorials oder so =).

Also ich weiß das man dafür einen TCP Socket erstellen muss der sich dann zum MSN Server verbindet, bloß bräucht ich die IP Adresse vom Windows Messenger Server und den Port. Kennt die jemand?

Und alles mit der Framework von Qt.
Bin noch nicht fit genug für die Qt Bibliothek aber will es jetzt endlich beherschen.
Mit dem standard C++ kenn ich mich eigentlich schon gut genug aus,
doch kenn ich die Socket befehle von der Qt bibliothek nicht, wie die Klassen aufgebaut sind u.s.w..
Kann man dazu nicht die WinApi schreibweiße nutzen? oder ist der rest dann nicht mehr kompatibel zum source code.

Und muss ich dann auch mit der windows messenger api arbeiten? für kontakt ausgabe u.s.w. ?
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Die IP und der Port sind dein geringstes Problem. Kennst du überhaupt das Protokoll?

Mein Tip: fang mit was einfacherem an.
bbt
Beiträge: 29
Registriert: 2. Februar 2010 19:21

Beitrag von bbt »

Also eine eigene MSN Implementation zu schreiben, ist ein wenig zu viel um seinen Horizont zu erweitern.

Ich würde auf eine MSN lib die schon geschrieben wurde (libgaim?, libpurple?) zurückgreifen.

Da hast du dann schon genug zu tun denke ich
Barcardi
Beiträge: 32
Registriert: 14. Mai 2010 03:00
Wohnort: München

Beitrag von Barcardi »

Hmm, was könntet ihr sonst empfehlen?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Barcardi hat geschrieben:Hmm, was könntet ihr sonst empfehlen?
Hast du sonst noch irgendwelche Hobbies? Dann könntest du da irgend eine kleine Verwaltungssoftware schreiben. Z.B. wenn du gerne Mountainbiketouren fährst, kannst du dir zurückgelegte Höhenmeter + Fahrtzeit +Körpergewicht + Ausrüstungsgewicht merken (in einer DB), und dann daraus ganz lustige Sachen wie Energieverbrauch, Trainingsfortschritte usw. errechnen.
Oder bist du gerne am "Garteln"? Gib deine verfügbaren Quadratmeter Garten ein, sowie deine gewünschten Ertragsmengen und lass dir auf Basis der jeweiligen Mindestpflanzabstände und guten/schlechten Nachbarn eine Optimale Verteilung des Gemüses in deinem Garten errechnen.
Oder - naja, gibt es etwas was du gerne machst, und das Optimierungsmöglichkeiten bietet?
Barcardi
Beiträge: 32
Registriert: 14. Mai 2010 03:00
Wohnort: München

Beitrag von Barcardi »

Hi franz,

wie wendet man Datenbanken in C++ an?
Also ich programmiere auch mit PHP und wende da die Datenbank "MySQL" an, aber wie wendet man Datenbanken in C++ an bzw. welche Datenbank muss ich nutzen.
Muss natürlich fürs erste nicht eine Online Datenbank sein, sondern eine die im Programmordner gleich mitdrinen ist.
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Hast du dir schon mal den SQL-Abschnitt in der Dokumentation angeschaut?
Barcardi
Beiträge: 32
Registriert: 14. Mai 2010 03:00
Wohnort: München

Beitrag von Barcardi »

upsala hat geschrieben:Hast du dir schon mal den SQL-Abschnitt in der Dokumentation angeschaut?
Hab es grad angeguckt. Ich weiß aber nicht ob ich in der richtigen Klasse geguckt hab, sah aber so aus.

War in der Klasse "QSqlDatabase" und da muss man eine SQL Datenbank haben, doch woher krieg ich eine SQL Datenbank?
Bzw. wie erstelle ich eine? (Muss nicht unbedingt eine Online Datenbank sein).

P.S: Warum werden die Funktionen per "." aufgerufen? Es ist immer anders, mal wird "::" verwendet mal "." oder auch "->".

Ist das eigentlich egal welches man nuzt?

Also um public Funktionen aufzurufen oder public Variablen einer Klasse zu ändern.


Hier ein Beispiel:

Code: Alles auswählen

QSqlDatabase db;
db.setHostName();
//oder
db::setHostName();
//oder
db->setHostName();
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Barcardi hat geschrieben:doch woher krieg ich eine SQL Datenbank?
Bzw. wie erstelle ich eine? (Muss nicht unbedingt eine Online Datenbank sein).
Um die musst du dich selber kümmern. Für Kleine Sachen reicht SqLite (Treiber "QSQLITE"), du kannst aber auch lokal einen MySQL-, Postgre-Server oder was weiß ich einrichten. Die Benutzung ist aber eigentlich gut dokumentiert.
Barcardi hat geschrieben:P.S: Warum werden die Funktionen per "." aufgerufen? Es ist immer anders, mal wird "::" verwendet mal "." oder auch "->".

Ist das eigentlich egal welches man nuzt?
Nein ist es nicht! "->" verwendest du, wenn du einen Zeiger hast (oder etwas "vergleichbares", welches den operator-> überlädt, z.B. einem iterator, smartpointer, etc).
Den "." wenn du auf ein Objekt im automatischen Speicherbereich zugreifen willst, z.B. einen "QString myString;", das ist ein nicht dynamisch (mit new) angelegtes Objekt.
Der "::" ist der Scopeoperator. Mit dem kannst du auch einiges anstellen, aber in den meisten Fällen brauchst du ihn, um eine nicht-objektbezogene (aka freie oder statische Funktion) in einem Namensraum (auch Klassen sind Namensräume) aufzurufen.
Im Falle von addDatabase() ist es eine als static deklarierte Funktion der Klasse QSqlDatabase - steht so in der Doku.

Aber das sind C++-Grundlagen :(
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

-> und :: sollte auch aus PHP bekannt sein.
Barcardi
Beiträge: 32
Registriert: 14. Mai 2010 03:00
Wohnort: München

Beitrag von Barcardi »

Ja von PHP kenn ich die Operatoren schon.

Zeiger verstehe ich zwar schon, aber ich verstehe nicht warum man Zeiger nuzt es geht ja auch ohne Zeiger..

Hab mich mit den Grundlagen schon beschäftigt, aber bloß kappier ich das mit den Zeigern nicht 100%, hab gelesen, das viele mit Zeigern probleme haben.

Naja ich hab ja schon gesagt das ich mir das Buch von Galileo Computing "Spielend C++ lernen" gekauft habe.
Da ging er eigentlich nur bis zur ObjektOrentierung aber auch nur ganz wenig davon.
Aber hab mich schon informiert und 2 Kapitel von OOP angeschaut.

Hmm ich weiß ned wie ich weitermachen soll.

Hab mir jetzt überlegt ein Projekt zu machen, undzwar ein Chat mit nem Clienten und einem Server über TCP.
Hab das alles schon mit dem standard C++ gemacht aber würde es gern mit der GUI Bibliothek von Qt machen damit ich besser mit Klassen Arbeite und überhaupt mit der Qt Bibliothek anvertraue.
Muss mich halt jetzt mit der Doku durchschlagen.
Noch eine kleine Frage wäre, ob ihr den Designer für die GUI benutzt oder alles Manuell macht?
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Barcardi hat geschrieben:JHab mir jetzt überlegt ein Projekt zu machen, undzwar ein Chat mit nem Clienten und einem Server über TCP.
Hab das alles schon mit dem standard C++ gemacht aber würde es gern mit der GUI Bibliothek von Qt machen damit ich besser mit Klassen Arbeite und überhaupt mit der Qt Bibliothek anvertraue.
Aber das war doch sicher nicht auf Basis von MSN. Das ist (AFAIK) ein proprietäres Format, das sehr viel Wissen erfordert, das zu knacken.
Wenn du ein eigenes Protokoll entwerfen willst, ist das natürlich eine andere Sache. Sollte kein Problem machen und auch etwas bringen.
Noch eine kleine Frage wäre, ob ihr den Designer für die GUI benutzt oder alles Manuell macht?
Kommt auf die Aufgabenstellung an. Die ui selber und einzelne Widgets sind fast immer mit dem Designer gestaltet, einige andere Sachen gehen besser von Hand.
Antworten