Zugriff auf Internet- bzw. Onlineinhalte

X

XELLEX

Hi @ all,
ich möchte mit einem C++-Programm eine txt-Datei auf einem Webserver auslesen.
Ich habe eine Methode programmiert mit der das auf dem gesamten eigenen PC
gut funktioniert.
Mein erster Versuch auf die Online-txt-Datei zuzugreifen, indem ich meiner Methode
einfach den Parameter "http://internetseite.de/test.txt" als Dateinamen übergab,
scheiterte allerdings... .
Muss ich einfach etwas an der Synthax ändern oder ist das ganze deutlich komplizierter
als ich dachte?

Gruß, XELLEX
 
Das kommt darauf an, was "deine Methode" dann mit dem Parameter macht. Wenn du ein fopen-äquivalentes Verhalten implementiert hast, wirst du ein Problem haben. Denn fopen arbeitet im lokalen Datei-System. Du müsstest so etwas wie eine Socket-Kommunikation einbauen, die den Port 80 auf einem Server abfragt. Das könnte z.B. so laufen:

Pseudo-Code nur exemplarische Darstellung:
Code:
SocketDescriptor = OpenSocket("www.test.de", 80);
SendSocket(SocketDescriptor, "GET /index.html HTTP/1.1\r\n\r\n");

string LineResults;
while(! EndOfFile( SocketDescriptor ) )
{
   LineResults = LineResults + ReadNextLine( SocketDescriptor );
}

PrintOutToConsole(LineResults);
 
Ich kenne mich mit Internetaufgaben nicht so aus, aber vielleicht funktioniert

#include <windows.h>

int main (int argc, char *argv[])
{
ShellExecute(NULL,"open","http://internetseite.de/test.txt",NULL,NULL,SW_SHOW);
...
 
Ich kenne mich mit Internetaufgaben nicht so aus, aber vielleicht funktioniert

#include <windows.h>

int main (int argc, char *argv[])
{
ShellExecute(NULL,"open","http://internetseite.de/test.txt",NULL,NULL,SW_SHOW);
...
Das funktioniert mit Laufwerken, aber nicht über eine Internetverbindung. Am einfachsten dürfte es sein, wenn du die Internet-Datei mit URLDownloadToFile auf deine lokale Platte speicherst und dann mit der obigen ShellExecute-Funktion öffnest.

Gruß
MCoder
 
Hallo,

also um auf die Datei zu kommen musst du wie schon gesagt wurde, Sockets öffnen und eine Verbindung zu deinem Server aufbauen. Am besten wäre ein Serverprogramm das z.B. auf den Port 1234 horcht, und du dann deine Anfrage mit dem Client schickst. Dein Serverprogramm sucht nach der Datei auf deinem Server und schickt diese dann an den Client. Der wiederrum speichert sie auf deiner Platte.

Was vllt auch noch funktionierten könnte ist, wenn du anstatt der URL die IP-Nummer des Servers nimmst und den Dateipfad der Text-Datei dahinter hängst.
Beispiel: \\255.92.134.64\..."Pfad"...\test.txt und du sie mit ifstream öffnest und ausließt. Im Programm-Quellcode musst du aber dann immer doppelt soviele '\' machen. also so: \\\\255.92.134.64\\..."Pfad"...\\test.txt
 
Zurück