HTML seite lesen mit c++! :)
-
Hey,
von euch hat das sicher schon mal jemand gemacht, es geht darum eine Html eine webservert mit best. IP und Port seite zu lesen. bspw. index.html! Der inhalt soll dann in einem String / stream als text lesebar sein..
Hat das von euch schonmal jemand gemacht.. gibts irgendwo einfach beispiele?
Diese geschichte hab ich vor 3-4 jahren im studium mal in Java gemacht.. war eigentlich kein große Problem.. aber in C++ wird das ganze etwas komplizierter sein... grüße
-
Für sowas kann man libcurl verwenden. Eventuell hilft Dir auch Boost.Asio weiter.
-
hier, aus meiner ramschkiste:
(ist C und winapi, aber vielleicht kannst du's ja irgendwie ausschlachten)// Sorry, no comments here // --> Link with ws2_32.lib !!! #include <stdio.h> #include <winsock2.h> #include <windows.h> char ipaddress[64]; char filename[64]; void SHIT (char *txt) { printf ("SHIT: Error in %s\n", txt); ExitProcess(0); } void DownloadFile(void) { SOCKADDR_IN sin; SOCKET sock; unsigned char buff[1500]; int res; long total = 0; sock = socket (AF_INET, SOCK_STREAM, 0); if (sock == INVALID_SOCKET) SHIT ("socket"); sin.sin_family = AF_INET; sin.sin_port = htons (80); sin.sin_addr.s_addr = inet_addr (ipaddress); printf ("connecting...\n"); if (connect (sock, (SOCKADDR*)&sin, sizeof(SOCKADDR_IN)) == SOCKET_ERROR) SHIT ("connect"); printf ("connected...\n"); sprintf (buff, "GET /%s HTTP/1.0\r\n\r\n", filename); if (SOCKET_ERROR == send (sock, buff, strlen(buff), 0)) SHIT ("send"); for (;;) { res = recv (sock, (char*)buff, sizeof(buff), 0); putchar ('.'); if (res == SOCKET_ERROR || res == 0) { printf ("\nHTTP transaction over. Received %lu bytes (+HTTP header)\n", total); closesocket (sock); return; } total += res; } } DWORD __stdcall RxThread (void *p) { UNREFERENCED_PARAMETER(p); for (;;) DownloadFile(); } int main() { WSADATA wsa; DWORD tid; int num; if (0 != WSAStartup (MAKEWORD(2,0), &wsa)) SHIT ("WSAStartup"); printf ("Welcome to the HTTP Stress Test Program\n"); printf ("---------------------------------------\n"); printf ("Target IP address: "); scanf ("%s", ipaddress); printf ("File to GET: "); scanf ("%s", filename); printf ("Number of simultaneous connections: "); scanf ("%d", &num); while (num--) if (NULL == CreateThread (NULL, 0, RxThread, 0, 0, &tid)) SHIT ("CreateThread"); Sleep (INFINITE); return 0; }
-
wunderbar;) danke schau ich mir mal an....
-
BorisDieKlinge schrieb:
wunderbar;) danke schau ich mir mal an....
so wie's ist, kannst du's direkt als windoofs-konsolenanwendung bauen.

-
jepp.. ich hab den ganzen rotz mal schnell in VB gemacht.. 30min
werde es ab später5 evtl. noch in MFC machen.. mit deinem codE;)
-
Öhm... vielleicht steh ich jetzt komplett auf dem Schlauch, aber gibt es nicht im Magazin genau hierfür einen Artikel mit dem namen: "Sockets und das HTTP-Protokoll"?
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.