1.) telnet ist eine art universeller client: telnet <host> <port> Wenn das nicht tut, kann auch nichts anderes tun (bei TCP)
2. Als Literatur kann ich nur waermstens "Unix Network Programming" von Stevens empfehlen. Da sind die ersten Beispiele auch deutlich einfacher (kein select()...)
Gruss
Frank
On 3/7/07, Kai-Micael Preiß preiss@ifl.tu-dresden.de wrote:
-----Original Message----- From: Josef Spillner [mailto:2005@kuarepoti-dju.net] Sent: Wednesday, March 07, 2007 10:16 AM To: kai-micael.preiss@tu-dresden.de; Linux-User-Group Dresden Subject: Re: C und Netzwerkprog
Am Mittwoch, 7. März 2007 09:43 schrieb Kai-Micael Preiß:
Hallo Liste!
Ich habe folgendes Code-Beispiel (Buch: C und Linux) für einen einfachen "Universal-Client" (Arbeitsweise ähnlich Terminal-Programm) für C unter Linux gefunden:
Ich empfehle, wenn es denn schon in C sein muss, einfach libggz-dev zu installieren und über #include <ggz.h> fd = ggz_make_socket(GGZ_SOCK_CLIENT, 22, "localhost"); die Sache mächtig zu vereinfachen und auch gleich noch Unterstützung für IPv6, SSL/TLS und dergleichen drin zu haben und sich nicht um Kompatibilität mit BSD oder alternativen Washington'schen Systemen beschäftigen zu müssen.
Wer auch immer den Beispielquelltext erstellt hat, hat nicht unbedingt Kompetenz bewiesen. Das sizeof() führt man auf den Variablennamen aus, nicht auf den Datentyp, denn dieser kann sich evtl. mal ändern (z.B. 32->64 bit) und dann hat man zwei Stellen anstatt nur einer, an der man das ändern muss und eventuell vergisst.
Der Typfehler kann über ein Casting behoben werden. Also (struct sockaddr*)server_addr verwenden. Aber wie gesagt, ich würde mir nicht all die Probleme einhandeln wollen, die man bekommt, wenn man Netzwerkcode auf der Ebene selbst in die Hand nimmt.
Josef
Hallo Josef,
erstmal danke für die Infos!
Meinereiner versucht sich grad ansatzweise in die Netzwerkprog einzufitzen. Anscheinend findet man hier aber nur sehr schwer vernünftige Literatur... Was empfiehlst Du denn statt C? Zu C++ habe ich bezgl. Netzwerkprog überhaupt nichts finden können.
Was das Casten angeht: Warnung ist weg. Allerdings erhalte ich immer noch keinerlei Ausgaben... (Ich hab den Adress-Operator drin gelassen, da ja als Übergabewert eine Adresse erwartet wird. Fehlt bei Dir... Korrekt?)
Vielleicht als Hintergrundinfo: wir sind dabei, unser Sim-Labor zu "überarbeiten". Schritt 1 soll ein Traffic Generator sein, der Positionsdaten ins Netz schießt, die von einer 2.Anwendung empfangen und verarbeitet werden.
Danke & Gruß, Kai
Lug-dd maillist - Lug-dd@mailman.schlittermann.de http://mailman.schlittermann.de/mailman/listinfo/lug-dd