Mit c++ auf webspace zugreifen
-
hi, leute^^ ich wollte fragen ob und wie ich mit c++ auf eine .txt Datei auf einem Webserver zugreifen kann. das ganze soll für ein Organisationsprogramm dien( einer gibt einen Termin ein,der rest kann ihn abrufen)
thx im voraus.
-
also ANSI C++ hilft da nicht weiter, librarys wie MySQL++ können( mittels MySQL ) auf Datenbanken zugreifen, oder mit telnet die Datei downloaden und einlesen.
-
Also wenn es um das reine lesen einer Datei geht, kannst du das auch mittels der WinAPI machen. Schau mal nach Wininet.h.
Da kannst du ganz einfach eine Url einlesen. (Also den Inhalt davon).
-
Die sauberste, platformunabhängige Lösung bietet Dir in diesem Fall die Bibliothek boost::asio. Da ist es am einfachsten, per HTTP-Protokoll auf den Server zu verbinden, und per
GET-Anfrage den Inhalt der Textdatei anzufordern.Die asio-Dokumentation liefert sogar schon ein komplettes Beispiel zum HTTP-Client:
http://asio.sourceforge.net/asio-1.0.0/src/examples/http/client/sync_client.cppFür alle weiteren Dinge bezüglich Boost empfiehlt es sich, die Dokumentation zu konsultieren.
-
ne ne mit asio ist das doch viel zu umständlich. dafür gibts schon spezielle bibliotheken
-
ne ne mit asio ist das doch viel zu umständlich. dafür gibts schon spezielle bibliotheken
Schon mal ausprobiert, bzw. das Beispiel angeguckt? Der Programmieraufwand ist mindestens genauso klein wie bei anderen, speziellen Bibliotheken. Desweiteren spricht schon das Konzept für Boost, welches eine performante und moderne Strategie verfolgt. Da haben andere Bibliotheken in dieser Hinsicht ihr Nachsehen.
Meiner Meinung nach ist da nichts aufwendig.
-
Ich habe mir das Beispiel angeguckt und gesehen das es nur Quick & Dirty implementiert wurde. HTTP kann man nicht einfach mit so ein paar Zeilen implementieren. Nur ein Beispiel: Wenn die Datei im Chunked Transfer Encoding gesendet wird, funktionierts nicht.
-
Nur ein Beispiel: Wenn die Datei im Chunked Transfer Encoding gesendet wird, funktionierts nicht.
Ich weiß nicht, ob
asioChunked Transfer Encoding unterstützt, aber würde die fehlende Unterstützung nicht was zur Einfachheit der Library beitragen? Genau in diesem speziellen Fall mit der Textdatei denke ich nicht, dass von 'CTE' Gebrauch gemacht werden muss, weshalb die Beschränktheit vonasiogegenüber spezieller, womöglich aufgeblähter Bibliotheken wesentliche Vorteile hat, da man die fehlenden Features auch nicht benötigt, und dadurch durch die große Anzahl der Funktionalitäten nicht erdrückt wird.Kann aber auch sein, dass da tatsächlich andere Bibliotheken besser geeignet sind - meiner Meinung nach ist da Boost aber recht gut angebracht.
-
Irgendwo in der WinAPI gibt's doch den Befehl URLDownloadToFile; wenn's unter Linux/Mac was halbwegs äquivalentes gibt, wäre das meiner Meinung nach die einfachste Lösung. Manchmal sind solche einzelnen, speziellen Funktionen sowieso viel besser als der Umweg über etliche Klassen, Variablen und Methoden. Deshalb glaube ich auch nicht an eine reine OOP-Zukunft, wie sie von manchen Java-verherrlichenden Profs propagiert wird, aber das nur am Rande und meine eigene bescheidene Meinung

-
thx, leute. ich werd mir die möglichkeiten nacher mal ansehen.
ps: man, bei dem username soll das e ein r sein.... aber das ist mein registrierter account, hab aber kb mich einzuloggen.
-
Wenn du den Borland(Codegear) C++ Builder bzw. den kostenlosen Turbo C++ benutzt kannst du das beispielsweise über Indy sehr leicht umsetzen.
Da ist alles mit boost etc. ein unvergleichliches gefrickel.
-
ne, ich verwende Code:Blocks. nja, ich schau mir nachher oder morgen mal das zeug an^^