Hallo ich möchte gern einige Dateien(.jpg) aus dem Internet über eine geeignete Funkion auslesen und abspeicher. Ich programmiere in visual C++. Mit der Funktion fopen() kann ich nur lokale Datein öffnen jedoch keine Adressen aus dem Netz. Muss ich da irgendwas besonderes beachten?
fopen() geht meistens immer nur lokal. Für HTTP/FTP und einige Andere gibts z.B. CURL.
Ja. Du musst dich mit der Programmierung von Sockets befassen. Mir haben die Beispiele auf Codeproject.com geholfen. http://www.codeproject.com/info/search.aspx?artkw=socket Bsp: Beginning Winsock Programming - Simple TCP server By Nishant Sivakumar http://www.codeproject.com/KB/IP/WinSockIntro01.aspx Beginning Winsock Programming - Simple TCP client By Nishant Sivakumar http://www.codeproject.com/KB/IP/winsockintro02.aspx
Falls das "reines" C++ werden soll, siehe oben. Wird das .NET-Framework verwendet, geht das ganze wesentlich einfacher
1 | WebClient^ client = gcnew WebClient(); |
2 | client->DownloadFile(urlString, localFileName); |
3 | // sollen die Daten noch vorher irgendwie bearbeitet werden
|
4 | // geht das z.B. mit
|
5 | array<byte>^ data = client->DownloadData(urlString); |
6 | // ...
|
7 | File->WriteAllBytes(localFileName, data); |
Ich würde dir trotzdem CURL empfehlen. CURL kann: FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS. Das ganze natürlich mit SSL, Kerberos und so weiter, es kommt mit Proxies und Authentifizierung klar, verfolgt HTTP-Umleitungen und setzt HTML-Formulare ab. Dafür würde ich mich nich mehr freiwillig mit Sockets herumschlagen, wenns nicht unbedingt nötig ist, das können andere besser als ich.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.