Archief - C bestand downloaden

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

InFerNo

Legacy Member
Ik zou graag een bestand downloaden met C (geen C++ of C#)
Als ik google op "C download file" of eender welke andere zoekstring dan krijg ik niet wat ik moet hebben :sop:

De vraag is dus redelijk simpel.
Ik zou graag een textbestand willen downloaden om dit uit te lezen.
Hiermee kan ik wel verder :)

Yngwie

Legacy Member
Bekijk de code van WGet eens, dat is in C geschreven en dient om remote files te downloaden.

GNU Wget

Tyfius

Legacy Member
Hou er wel rekening mee dat er verschillen zijn tussen C onder Linux en C onder Windows als het op dergelijke zaken aan komt.

InFerNo

Legacy Member
Mhm, ik had gehoopt dat er iets kon zijn als in C#

Code:
System.Net.WebClient Client = new WebClient();
    Stream strm = Client.OpenRead("http://www.csharpfriends.com");
    StreamReader sr = new StreamReader(strm);
    string line;
    do
    {
        line = sr.ReadLine();
        listbox1.Items.Add(line);
    }
    while (line !=null);
    strm.Close();

Ik weet dat er bepaalde namespaces worden bij gehaald in C#, maar ik zal alleszins al eens kijken naar wget :)

Tyfius

Legacy Member
C != C#, buiten de C in de naam. C kent ten eerste al geen namespaces en de standaard is zeer abstract en platform onafhankelijk. Downloaden moet je via sockets gaan doen en daar liggen een aantal verschillen tussen de implementatie van C onder Linux (dikwijls GCC) en Windows (indien je gebruik maakt van Visual Studio en bijgevolg de MS implementatie van C).

kris

Legacy Member
wil je http spreken of ftp of eender welke andere stream ?
Afhankelijk hiervan zal je dan de rfc moeten lezen.

Bvb. de rfc van http is relatief simpel, je opent een socket naar poort 80 van een bepaalde server en je vraagt een file aan die apache server (net zoals een browser het zou doen)

Het voor/nadeel aan c is dat je alles zelf moet/mag doen. Niet zoals die pussies die C# spreken ;)

Yngwie

Legacy Member
als je via http iets ophaalt is het niet perse altijd van een apache webserver btw. maar de commands die je naar de server stuurt blijven wel hetzelfde. om een voorbeeld te bekijken van wat je naar de server zou moeten sturen kan je een http-header plugin voor firefox gebruiken (bv liveHttpHeaders of tamperdata) en dan kan je zien wat je browser allemaal naar de server stuurt bij een aanvraag van een bepaalde file.

stewie4ever

Legacy Member
Er valt toch shellcode te vinden op internet die files downloaden...:unsure:
Het hangt wel natuurlijk af dan per platform maar het is niet zo moeilijk te implemteren in C

Tyfius

Legacy Member
Of, een andere oplossing is een externe library (cURL) gebruiken die dat allemaal voor jou afhandeld...
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan