Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Bild von HTTP-Server laden

Frage Entwicklung Webentwicklung

Mitglied: BernddasBrot2

BernddasBrot2 (Level 1) - Jetzt verbinden

02.11.2009 um 09:26 Uhr, 3304 Aufrufe, 3 Kommentare

Morgen, alle zusammen,

ich habe mir ein kleines Programm geschrieben, das Bilder von einem HTTP-Server runterlädt. Es funktioniert auch so weit ganz gut. Aber bei manchen Bildern funktioniert es eben gar nicht. Ich habe vielleicht einen kleinen Streifen am oberen Ende des Bildes, aber der Rest ist einfach grau. Im Header steht auch nichts, dass das Bild gechunked wäre. (Ich hoffe, dass ich das richtig verstanden habe, und chunked demnach heissen würde, dass das Bild auf mehrere Pakete verschickt wird).

Also wo ist das Problem. Warum funktionieren manche Bilder, und andere wieder nicht. An der Größe kann es auch nicht liegen. Ich lese die Größe des Bilder vorher aus dem Header, den ich mit einer HEAD-Anfrage bekomme aus, erstelle den Puffer groß genug, und stelle dann die GET-Anfrage.

Könnt ihr mir helfen?

Danke schon mal,
Bernd das Brot
Mitglied: Tommy70
02.11.2009 um 09:36 Uhr
Hallo

Ein Programmierfehler vielleicht? Ist schwer das genau zu sagen ohne dass man genauere Angaben hat.
Bitte warten ..
Mitglied: H41mSh1C0R
02.11.2009 um 10:28 Uhr
genau, *glaskugel polier*

@Bernd das Brot

welche sprache?
Sourcenausschnitt der betreffenden Stelle?

Betrifft das alle Bilder eines Formates?
Wenn ja welches Format?
Tritt dieser Fehler bei mehreren Formaten auf oder nur bei einem bestimmten?
Bitte warten ..
Mitglied: BernddasBrot2
02.11.2009 um 15:39 Uhr
Also es liegt nicht am Format, ich habe bis jetzt nur .jpeg-Bilder geladen.
Ich habe das Programm in C geschrieben.

Der Codeausschnitt:

01.
#pragma comment(lib, "ws2_32.lib") 
02.
#include <windows.h> 
03.
#include <stdio.h> 
04.
#include <conio.h> 
05.
#include <stdlib.h> 
06.
 
07.
int WSAStartUp(); 
08.
main() 
09.
10.
    long rc; 
11.
    int i = 0; 
12.
    SOCKET s; 
13.
    char *buf, *p_body; 
14.
    char anfrage[] = "GET ADDRESSE_DES_BILDES HTTP/1.1\r\nHost: HOST\r\n\r\n"; 
15.
    SOCKADDR_IN addr; 
16.
    FILE *file; 
17.
 
18.
    rc = WSAStartUp(); 
19.
    buf = (char*) malloc(6000000*sizeof(char)); 
20.
 
21.
    if(rc!=0) 
22.
23.
        printf("Fehler: WSAStartUp()\n"); 
24.
        return -1; 
25.
26.
 
27.
    s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 
28.
    memset(&addr, 0, sizeof(SOCKADDR)); 
29.
    addr.sin_port = htons(80); 
30.
    addr.sin_addr.s_addr = inet_addr("[IP-ADDRESSE]"); 
31.
    addr.sin_family = AF_INET; 
32.
 
33.
    rc = connect(s, &addr, sizeof(SOCKADDR)); 
34.
    if(rc!=0) 
35.
36.
        printf("Fehler: connect()\n"); 
37.
        return -1; 
38.
39.
 
40.
    rc = send(s, anfrage, strlen(anfrage), 0); 
41.
    rc = recv(s, buf, 6000000*sizeof(char), 0); 
42.
 
43.
    while(buf[i] != 13 && buf[i+1] != 10 || buf[i+2] != 13 && buf[i+3] != 10) 
44.
45.
        i++; 
46.
47.
    p_body = &buf[i+4]; 
48.
    file = fopen("NAME.jpeg", "wb"); 
49.
    fwrite(p_body, 1, rc - i, file); 
50.
    fclose(file); 
51.
    printf("%s\n", buf); 
52.
 
53.
     
54.
    closesocket(s); 
55.
 
56.
    _getche(); 
57.
 
58.
59.
 
60.
int WSAStartUp() 
61.
62.
    WSADATA wsa; 
63.
    return WSAStartup(MAKEWORD(2,0), &wsa); 
64.
65.
 
Wie gesagt, bei den meisten Bildern funktioniert es, aber es gibt doch auch einige, die nicht so funktionieren.
Bitte warten ..
Ähnliche Inhalte
Windows 10
Windows 10 Clients laden Updates nicht von WSUS Server (7)

Frage von Alternativende zum Thema Windows 10 ...

Windows Server
gelöst NET Framework 3.5 auf Windows Server 2012 R2 aktivieren - 0x800F0906 (7)

Frage von timg93 zum Thema Windows Server ...

LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (24)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Exchange Server
gelöst Exchange 2013 kein Support für Windows Server 2016? (1)

Frage von vBurak zum Thema Exchange Server ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (24)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Hardware
16-20 Port POE Switch mit VLAN (16)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Exchange HyperV Prozessorlast (16)

Frage von theoberlin zum Thema Windows Server ...