ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
352
352
EMPFEHLEN
-
16.07.07 09:12 #1
- Registriert seit
- Nov 2002
- Beiträge
- 52
Hallo zusammen,
ich habe ein Programm geschrieben welches einen HTTP-Request an einen Server via WinInet absetzt. Anschliessend möchte ich die empfangenen Daten auswerten.
Nun kommt es aber manchmal vor, dass der Server mir unter schwerer Last zwar die Daten schickt, ich sie jedoch nicht empfange.
Folgendes ist mein Code um die Verbindung aufzubauen:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
int sendDataMessage(char *message, CONFIGURATION *config){ char ch = NULL; Initialize = NULL; Connection = NULL; File = NULL; Initialize = InternetOpen(TEXT("Text Text"), INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); if(Initialize == NULL){ return 0; } Connection = InternetConnect(Initialize, TEXT(config->server), atoi(config->port), NULL,NULL,INTERNET_SERVICE_HTTP,0,0); if(Connection == NULL){ return 0; } //check if port equals defined server ssl port if(strcmp(config->port, DEFINED_SSL_PORT) == 0){ File = HttpOpenRequest(Connection,NULL,TEXT(message), NULL,NULL,NULL, INTERNET_FLAG_IGNORE_CERT_CN_INVALID | INTERNET_FLAG_IGNORE_CERT_DATE_INVALID | INTERNET_FLAG_SECURE, 0); } else { File = HttpOpenRequest(Connection,NULL,TEXT(message), NULL,NULL,NULL, 0, 0); } if(File == NULL){ return 0; } if(!HttpSendRequest(File,NULL,0,NULL,0)) { DWORD error = GetLastError(); if(error == ERROR_INTERNET_INVALID_CA){ File = setIgnoreFlags(File); if(!HttpSendRequest(File,NULL,0,NULL,0)){ return 0; } } } return 0; }
Und hier lese ich die Daten:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
while(InternetReadFile(File,receive_buffer,SOCKET_RECEIVE_BUFFER-1,&dwBytes)){ if(dwBytes==0){ break; } user_string = (char*) realloc(user_string, user_string_length + dwBytes + 1); user_string[user_string_length] = '\0'; receive_buffer[dwBytes] = '\0'; user_string_length = user_string_length + dwBytes; if(user_string == NULL){ MessageBox(NULL, "Could not allocate enough memory", "Title", MB_OK); return NULL; } strcat(user_string, receive_buffer); }
Kann es sein, dass die Verbindung frühzeitig abgebrochen wird? Kann ich den Timeout irgendwo setzen?
Ich habe in MSDN nachgeschaut, jedoch keine Option für ein Delay entdeckt. Könnte es an der SSL Verbindung liegen?
Wie gesagt, der Fehler tritt nur unter hoher Last auf, solange der Server realtiv schwach belasted ist funktioniert alles.
Ähnliche Themen
-
Daten werden nicht übertragen
Von Affenjunge im Forum Javascript & AjaxAntworten: 6Letzter Beitrag: 22.03.10, 20:33 -
Daten werden nicht eingetragen!
Von lordofscotland im Forum PHPAntworten: 3Letzter Beitrag: 17.09.07, 19:01 -
Linien werden nicht immer auf Anhieb dargestellt
Von Online-Skater im Forum CSSAntworten: 0Letzter Beitrag: 26.09.06, 22:27 -
Jpg#s werden im Loader nicht immer scaliert!
Von DirtyBiker im Forum Flash PlattformAntworten: 15Letzter Beitrag: 12.06.06, 08:09 -
ORACLE: SELECT zeigt Daten nicht immer an
Von SG_wXistenZ im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 01.12.04, 08:10





Zitieren
Login






