BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C++ Linux - Chatsystem Server / Client » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Linux - Chatsystem Server / Client
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Champus Champus ist männlich
BlackBoarder


images/avatars/avatar-2272.png

Dabei seit: 24.03.2002
Beiträge: 1.649
Herkunft: Karlsruhe

Linux - Chatsystem Server / Client       Zum Anfang der Seite springen

Moin,
ich würde mich gerne mal an ein einfaches Chatsystem ranwagen - Server auf Linux mit Sockets, Client unter Windows mit Winsocks.

Habe aber leider keinen Anhaltspunkt - im wesentlichen geht es mir erstmal nur darum, dass der Client einen Befehl / Text o.ä. sendet, und der Server darauf antwortet (oder umgekehrt).

D.h. ich verbinde mit dem Client an die IP und Port des Servers, der Server sendet eine Nachricht bzw. einen Befehlscode der den Client dann dazu veranlasst, dem User eine Nachricht auszugeben, der User gibt dann einen Text ein, dieser soll dann an den Server gesendet und als Variable o.ä. gespeichert werden.

Also: Server -> Client, Client -> Server

Wie baue ich soetwas vorerst sehr einfach auf, gibt es Stichwörter nach denen ich suchen muss, habt ihr vlt. ein Beispielquellcode, ein Tutorial o.ä.?

Gruß
CorvusCorone

__________________
CorvusCorone -> Champus
29.07.2006 13:54 Champus ist offline Homepage von Champus Beiträge von Champus suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Hm, also generell nimmt man zumindest beim Server
für sowas Threads, auch beim Client empfielt sich das.

Evtl. schaust du dir mal wxWidgets an, da gibts eine
Beispiel Anwendung in den Samples zu.
Wohl ohne Threads.
Zu dem gibts auch ne FAQ dazu im wxWidgetsforum:
http://wxforum.shadonet.com/viewtopic.php?t=2736
Mit wxWidgets hättest du auch den Vorteil, das es plattformunabhängig ist.

phlox

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
29.07.2006 14:53 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
Black Star Black Star ist männlich
Der Pate [Admin]


images/avatars/avatar-2158.jpg

Dabei seit: 11.12.2001
Beiträge: 2.282
Herkunft: /dev/stderr

      Zum Anfang der Seite springen

Qt 4 ist auch platformunabhaengig und ist meiner Meinung nach die deutlich bessere GUI-Bobliothek. Ausserdem bringt Qt Socketunterstuetzung mit.

Fuer den Server braucht man nicht unbedingt Threads (fuer den Client auch nicht). Es gibt unter Linux die Moeglichkeit Sockets zu oeffnen, die sobald eine Anfrage reinkommt den Port weiterhin offen zu halten. Ich weiss jetzt nicht mehr ganz genau wie die Funktionen heissen, aber select (oder fdselect) gehoert dazu.
Diese haben ausserdem den Vorteil, dass man Timeouts setzen kann.

Also nicht die normalen Socket-Funktionen accept, connect, send, recv benutzen sondern select, fcntl etc.
Dazu lassen sich aber sicher Beispiele im Netz finden.

EDIT:
Das hier sieht ganz nett aus:
http://www.lowtek.com/sockets/select.html

__________________
vescere bracis meis

29.07.2006 16:37 Black Star ist offline E-Mail an Black Star senden Homepage von Black Star Beiträge von Black Star suchen
Champus Champus ist männlich
BlackBoarder


images/avatars/avatar-2272.png

Dabei seit: 24.03.2002
Beiträge: 1.649
Herkunft: Karlsruhe

Themenstarter Thema begonnen von Champus
      Zum Anfang der Seite springen

Danke für eure Tipps, aber wxWidgets scheinen mir noch zu kompliziert - ich glaube ich bleibe bei den Sockets.

So wie es aussieht werde ich anscheinend keine GUI nutzen, da sich alles was ich vorhabe auch in den entsprechenden Konsole lösen lässt.

Für weitere Informationen bin ich dankbar, werde aber mal nach Sockets weiterlesen.

__________________
CorvusCorone -> Champus
29.07.2006 17:14 Champus ist offline Homepage von Champus Beiträge von Champus suchen
Cpt.Miller Cpt.Miller ist männlich
BlackBoarder


Dabei seit: 14.08.2003
Beiträge: 644
Herkunft: Stuttgart

      Zum Anfang der Seite springen

Entweder ich weiß etwas falsch oder du hast etwas falsch Verstanden.
Ist wxWidgets / Qt nicht eine Grafikbibliothek? Das schließt dann keine Sockts aus.

Du kannst in Qt ganz einfach eine GUI im Designer basteln, sodass du dann nur noch das Backend schreiben musst.
29.07.2006 19:09 Cpt.Miller ist offline E-Mail an Cpt.Miller senden Homepage von Cpt.Miller Beiträge von Cpt.Miller suchen
Champus Champus ist männlich
BlackBoarder


images/avatars/avatar-2272.png

Dabei seit: 24.03.2002
Beiträge: 1.649
Herkunft: Karlsruhe

Themenstarter Thema begonnen von Champus
      Zum Anfang der Seite springen

Ok, das heißt, wenn ich dann doch nur Konsolenanwendungen schreiben wollte reichen mir ganz normale Sockets - gut, werde mich dann darüber schlau machen. Danke euch für eure Tipps (Links usw. sind trotzdem immer noch erwünscht).

__________________
CorvusCorone -> Champus
30.07.2006 00:17 Champus ist offline Homepage von Champus Beiträge von Champus suchen
Misel Misel ist männlich
Hüter des Kitkat


images/avatars/avatar-2084.png

Dabei seit: 02.11.2002
Beiträge: 1.203
Herkunft: live://home.berlin.d e

      Zum Anfang der Seite springen

Du kannst auch ein Programm mit GUI und auf Socketbasis schreiben. Qt 4 bietet nur eine zusätzliche Abstraktionsschicht mit, so dass Du Dich nur noch auf Qt-Sockets konzentrieren müsstest, statt auf Winsocks für Windows, Sockets für Unix/Linux usw.

Qt 4 brächte aber auch den Nachteil, dass Du - solltest Du es überhaupt veröffentlichen - das Programm unter die GPL stellen musst, wenn Du keine Lizenzgebühren an TrollTech bezahlen willst. Aber das ist ja letztlich doch irrelevant für Dich.

Als Übung ist so ein Chatsystem natürlich gut geeignet - ich schätze mal darauf willst Du auch hinaus. Aber ansonsten ist man in Sachen Chat doch mit Jabber, IRC oder gar einem simplen Talkdemon besser bedient.

__________________
LAUFT! Ich spiele KILLERSPIELE!
30.07.2006 01:21 Misel ist offline E-Mail an Misel senden Homepage von Misel Beiträge von Misel suchen
phlox81 phlox81 ist männlich
Bote des Lichts und Moderator


images/avatars/avatar-2264.jpg

Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo

      Zum Anfang der Seite springen

Zitat:
Original von Black Star
Qt 4 ist auch platformunabhaengig und ist meiner Meinung nach die deutlich bessere GUI-Bobliothek. Ausserdem bringt Qt Socketunterstuetzung mit.


wxWidgets bietet auch Sockets an. Zu dem ist wxWidgets nicht von
der GPL betroffen, so das man später evtl. es auch für kommerzielles nutzen
kann, oder einfach so ohne Quellcode weitergeben kann.
Und was jetzt an QT4 besser sein soll, frag ich mich wirklich Augenzwinkern

__________________
Intelligenz ist eine Illusion des Menschen

phlox81.de | codenode.de
30.07.2006 13:47 phlox81 ist offline E-Mail an phlox81 senden Homepage von phlox81 Beiträge von phlox81 suchen
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
BlackBoard » Design, Programmierung & Entwicklung » Programmieren » C++ Linux - Chatsystem Server / Client

Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH