Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Zitat von »"Twinky"«
Mein Frage ist nun wie ich so etwas anstellen könnte
Zitat von »"chriss"«
Worauf zielt deine Frage eigentlich ab?
Geht es darum, wie du das PHP Skript aufrufen und an die Daten der Rückgabe kommen kannst?
Was willst du denn über PHP realisieren? Nur die Lobby oder mehr?
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <server-list> <?php // Alle Server Ausgeben for($i = 1; $i < 10; ++$i) { echo "<Server name='Server ".$i."' />"; } ?> </server-list> |
C-/C++-Quelltext |
|
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 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
#include <iostream> #include <fstream> #include <sstream> #include <string> #include <list> #include <windows.h> #include <Wininet.h> #include <tinyxml.h> using namespace std; void DownloadXml(TiXmlDocument* _doc, const std::string& addr) { HINTERNET hInternet; HINTERNET hFile; cout << "Verbinde..." << endl; hInternet = InternetOpen( "Firefox", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0); hFile = InternetOpenUrl(hInternet, addr, NULL, 0, INTERNET_FLAG_NO_CACHE_WRITE, 0); if(!hFile) throw string("Es konnte keine Verbindung zum Server hergestellt werden !"); const DWORD _BufferSize = 4096; bool first = true; char Buffer[_BufferSize]; DWORD readSize; string downloadData; downloadData.reserve(262144); cout << "Download..."; while( InternetReadFile(hFile, Buffer, _BufferSize - 1, &readSize) != FALSE) { if(readSize == 0) break; Buffer[readSize] = '\0'; if(first) { // Der Xml-kopf muss entfernt werden, weil tinyXml nur die Nodes parsed string temp(Buffer); downloadData += temp.erase(0, temp.find("?>") + 2); first = false; }else downloadData += Buffer; } InternetCloseHandle(hFile); InternetCloseHandle(hInternet); cout << downloadData.size() << " Byte\n"; cout << "Parse Xml..." << endl; _doc->Parse(downloadData.c_str() ); if(_doc->Error()) throw string("Fehler bei der der herruntergeladenen xml(" + string(_doc->ErrorDesc()) + ")!"); } int Start() { TiXmlDocument doc; DownloadXml(&doc, "http//:mein.server.de/lobby.php"); // So jetzt muss nur noch geparsed werden... aber darauf hab ich gerade keine lust :) return 0; } int main() { try{ return Start(); }catch(string e) { cout << "\nFehler:\n" << e.c_str(); cin.get(); return 1; }catch(...) { cout << "\nEs ist ein unbekannter Fehler aufgetreten !"; cin.get(); return 2; } } |
Zitat von »"Databyte"«
PS: Wiso wird der Code eigentlich immer falsch gefärbt ?
Zitat von »"rewb0rn"«
Zitat von »"Databyte"«
PS: Wiso wird der Code eigentlich immer falsch gefärbt ?
Hier im Forum? Weil das Code Plugin nicht ganz bugfrei ist
Werbeanzeige