Re: OT: Lesen einer Datei von HTML-Server

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Wed, 5 Jan 2005 13:34:52 +0100 (CET)

Wittig Christoph <Wittig(at)imparat.de> wrote:
> etwas am Thema vorbei, aber vielleicht kann ja jemand
> mal mit der Zaunlatte winken:
> Was muss man in C anstellen, um eine auf einem
> HTML-Server befindliche Datei zum Lesen oeffnen
> zu koennen. Hintergrund: Eine auf einem Web-Server
> befindliche Datei soll in regelmaessigen Abstaenden
> gelesen und ausgewertet werden.
> Fuer evtl. Tips und Hinweise schon mal vielen Dank,

Wie in den meisten anderen Sprachen (Python, Perl, ...)
gibt es auch für C fertige Module bzw. Libraries, die HTTP-
Verbindungen implementieren.

FreeBSD hat hierfür die libfetch. Am besten schaust Du
mal in die fetchGet(3) manpage; dort steht alles drin,
was man dazu wissen muß.

Wenn Du eine Lösung benötigst, die auf andere UNIX-Systeme
portabel sein muß, kannst Du z.B. die libwww verwenden.
Das ist die Referenzimplementation des W3C. Eine andere
Möglichkeit wäre die libcurl. Beide sind in der FreeBSD-
Ports-collection.

Wenn Du -- warum auch immer -- das ganze selbst implemen-
tieren möchtest, mußt Du halt auf die übliche Weise eine
TCP-Verbindung zum HTTP-Server öffnen (d.h. socket(),
connect()), einen GET-Request schicken und die Antwort
lesen. Dazu solltest Du Dir _unbedingt_ den Standard
durchlesen (RFC2616), da es genug Dinge gibt, die man
falsch machen kann und die Schaden anrichten können.

Wenn Du eine leicht durchschaubare Vorlage haben möchtest,
schau mal in den Quelltext hier:

http://www.secnetix.de/~olli/tmp/mget.tar.gz

Das ist ein kleines Tool, das eine Datei per HTTP holt.
Es enthält eine minimale (aber standardkonforme) HTTP-
Client-Implementation.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"If you aim the gun at your foot and pull the trigger, it's
UNIX's job to ensure reliable delivery of the bullet to
where you aimed the gun (in this case, Mr. Foot)."
        -- Terry Lambert, FreeBSD-hackers mailing list.
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 05 Jan 2005 - 13:39:20 CET

search this site