Zum Inhalt springen

EDSCampino

Mitglieder
  • Gesamte Inhalte

    11
  • Benutzer seit

  • Letzter Besuch

  1. EDSCampino

    Winsock HTML

    Close() hab fehler gefunden war im String den cih an den Server gesendet hab
  2. Morgen =) ich hab seit 2 tagen nuh ein problem mit den winsock in vs10 ich möchte eine html seite aus dem web abrufen und in der console anzeigen, soweit so gut den connect zum winsock bekoomm ich noch hin aber beim senden des Get befehls liefert er mir nur server daten zurück HTTP/1.1 200 OK Set-Cookie: Set-Cookie: Content-Length usw Leut der Aussage HTTP/1.1 200 OK müsste alles glatt gelaufen sein aber er zeigt es mir trotzdem nich an // getpage.cpp : main project file. #include "stdafx.h" //#include <windows.h> #include <winsock2.h> #include <stdio.h> #include <stdlib.h> #include <iostream> //#include <string.h> #include <atlstr.h> #pragma comment(lib, "mpr.lib") using namespace System; using namespace std; void perr_exit(char* msg, int ret_code) { printf("%s, Error: ",msg); printf("%d\n",ret_code); exit(ret_code); } void usage(char* prgname) { printf("\nUsage:\t"); printf("%s <URL> [<File>]\n",prgname); printf("\tURL: Website URL\n"); printf("\tFile: Optional File to store the Website\n"); exit(0); } int main(int argc, char * argv[]) { char* url; char* site; char* host; char buf[1024]; char send_buf[256]; char recv_buf[256]; long rc; FILE* target_file; char uses_file=0; char* write_ptr; SOCKET s; SOCKADDR_IN addr; WSADATA wsa; HOSTENT* hent; if(WSAStartup(MAKEWORD(2,0),&wsa)) perr_exit("WSAStartup failed",WSAGetLastError()); s=socket(AF_INET, SOCK_STREAM, 0); addr.sin_family=AF_INET; addr.sin_port=htons(80); //eingeber der URL printf("\nURL: "); //scanf("%s",buf); sprintf(buf,"dtdragonfighter.dt.funpic.de/index.html"); //sprintf(host,"http://dtdragonfighter.dt.funpic.de"); //sprintf(site,"/test.html"); url=buf; //Überprüfen der url if(strncmp("http://",url,7)==0) host=url+7; else host=url; //--------------------------------------------- if((site=strchr(host,'/'))!=0) *site++='\0'; else site=host+strlen(host); /* \0 */ printf("Host: %s\n",host); printf("Site: %s\n",site); printf("Connecting....\n"); //Fehler abfangen if((addr.sin_addr.s_addr=inet_addr(host))==INADDR_NONE) { if(!(hent=gethostbyname(host))) perr_exit("Cannot resolve Host",WSAGetLastError()); strncpy((char*)&addr.sin_addr.s_addr,hent->h_addr,4); if(addr.sin_addr.s_addr==INADDR_NONE) perr_exit("Cannot resolve Host",WSAGetLastError()); } if((s=socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET) perr_exit("Cannot create Socket",WSAGetLastError()); if( connect(s,(SOCKADDR*)&addr,sizeof(SOCKADDR))) perr_exit("Cannot connect",WSAGetLastError()); printf("Connected to %s...\n",host); sprintf(send_buf,"put /%s HTTP/1.1.0\r\n Host: http://%s/%s?Version=ABBUND:80\r\n\r\n" ,site,buf,site); printf("%s\n",send_buf); if((send(s,send_buf,strlen(send_buf),0))<strlen(send_buf)) perr_exit("Cannot send Data",WSAGetLastError()); printf("----Result----\n"); //ausgabe des Empfangens while((rc=recv(s,recv_buf,255,0))>0) { recv_buf[rc]='\0'; printf("%s",recv_buf); } //Ausgeben der fehlermeldung im recive printf("recv failed: %d\n", WSAGetLastError()); //done printf("\nDONE!"); //close socket closesocket(s); return 0; } PS: Rechtschreibfehler sind beabsichtigt ^^ PSS: Code is nich schön ich weiss
  3. so Problem gelöst, auf der Rechten seite von ListeAlt und ListeNeu stand noch ein \r\n das man nciht direkt gesehen hat weg getrimmt und nun klappt es =)
  4. Bei mir Leider nicht ;-( er ersetzt immer noch nichts =/ auch nicht wenn ich es hart codiert im code mache also entweder ich hab nen brett vorm kopf oder ich mach was grundlegendes Falsch
  5. Res BEGIN MENUITEM "freies holz Fläche", ID_TOOLS_HOLZFREI_FLAECHE MENUITEM "freies holz Fläche erster Punkt", ID_TOOLS_HOLZFREI_FL1 MENUITEM "freies holz Fläche zweiter Punkt", ID_TOOLS_HOLZFREI_FL2 MENUITEM "freies holz erster Punkt", ID_TOOLS_HOLZFREI_PKT1 MENUITEM "freies holz zweiter Punkt", ID_TOOLS_HOLZFREI_PKT2 MENUITEM "freies holz positionieren", ID_TOOLS_HOLZFREI_POSITION END Liste A: steht für das Wort das ersetzt werden soll und V: steht für das wort in das ersetzt werden soll A: freies holz V: Volumen A: IDR_TEXT1 V: IDR_TEXT2
  6. ja das kommt da oft drin vor und der breakpoint wird nicht angelaufen
  7. so hab die casts rausgenommen, in dem ZeilenResViz steht jetzt genau das selbe wie im ZeilenRes und es steht in ListeAlt und ListeNeu aufjedenfall der wert was ersetzt werden sollund in was ersetzt werden soll, laut debugger
  8. for(k=0;k<j;k=k+2) { ListeNeu = ZeilenListe.GetAt(k+1); ListeAlt = ZeilenListe.GetAt(k); ListeNeu.Delete(0,3); ListeAlt.Delete(0,3); while(m<ZeilenRes.GetCount()) { CString Res = ZeilenRes.GetAt(m); int n = Res.Replace((LPCTSTR)ListeAlt,(LPCTSTR)ListeNeu); if (n!=0) { n++; } ZeilenResViz.Add((LPCTSTR) Res); m++; } m=0; } Hab die Aktuelle res in ein Neues Array geschrieben und m auf 0 zurück gesetzt es passiert trotzdem nichts leider danke schon mal für Die Hilfe
  9. Guten Morgen, Ich hab da So ein kleines Problem. ich Soll hier eine resourcen datei Duplizieren und diese dann abändern. eingelsen ist die alte Resourcen datei, und die liste mit den Strings die abgeändert werden sollen, beides in jeweils ein Stringarray. alles gut und schön. jetzt will ich durch die Liste durchgehen und immer wenn der string der geändert werden soll auftaucht soll dieser durch den Neuen String ersetzt werden. for(k=0;k<j;k=k+2) { ListeNeu = ZeilenListe.GetAt(k+1); //Liste mit zuändernden wörtern (Alter String) ListeAlt = ZeilenListe.GetAt(k); //Liste mit zuändernden wörtern (Neuer String) while(m<ZeilenRes.GetCount()) { CString Res = ZeilenRes.GetAt(m); //Resourcen die es zu Dublizieren gilt ListeNeu.Delete(0,3); // in den ersten 3 zeichen ein A: oder N: Stehen(Alt u NEU) ListeAlt.Delete(0,3); int n = Res.Replace((LPCTSTR)ListeAlt,(LPCTSTR)ListeNeu); //HIER ist das Problem !!! if (n!=0) //DEBUG ANFANG { n++; }//DEBUG ENDE m++; } } [/PHP] Also im Prinzip eine SUCHEN und Ersetzten geschichte. Trotzdem wenn ich das so aufrufe Ersetzt er mir nichts!! Programierumgebung: VS 2005 Ich hoffe ihr Könnt mir weiter helfen =) Danke im vorraus=)
  10. Guten Morgen, Ich hab da So ein kleines Problem. ich Soll hier eine resourcen datei Duplizieren und diese dann abändern. eingelsen ist die alte Resourcen datei, und die liste mit den Strings die abgeändert werden sollen, beides in jeweils ein Stringarray. alles gut und schön. jetzt will ich durch die Liste durchgehen und immer wenn der string der geändert werden soll auftaucht soll dieser durch den Neuen String ersetzt werden. for(k=0;k<j;k=k+2) { ListeNeu = ZeilenListe.GetAt(k+1); ListeAlt = ZeilenListe.GetAt(k); while(m<ZeilenRes.GetCount()) { CString Res = ZeilenRes.GetAt(m); ListeNeu.Delete(0,3); ListeAlt.Delete(0,3); int n = Res.Replace((LPCTSTR)ListeAlt,(LPCTSTR)ListeNeu); if (n!=0) //DEBUG ANFANG { n++; }//DEBUG ENDE m++; } }[/PHP] Also im Prinzip eine SUCHEN und Ersetzten geschichte. Trotzdem wenn ich das so aufrufe Ersetzt er mir nichts!! Programierumgebung: VS 2005 Ich hoffe ihr Könnt mir weiter helfen =) Danke im vorraus=)

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...