Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
gombolo Mini JLI'ler
Anmeldedatum: 25.11.2006 Beiträge: 8
Medaillen: Keine
|
Verfasst am: 09.11.2007, 12:25 Titel: Daten an einen Server schicken (C/C++ WinAPI) |
|
|
Welche Funktionen benötigt man um Daten an einen Server zu schicken. Der Server soll diese Daten mit PHP in eine Datenbank schreiben. Das ganze soll, wenn es fertig ist, eine Highscoreliste werden.
Könnt ihr mir sagen wie ich die Daten mit C++ und WinAPI zum Server bekomme? |
|
Nach oben |
|
|
manu Super JLI'ler
Alter: 35 Anmeldedatum: 09.03.2006 Beiträge: 327 Wohnort: allgäu (DE) Medaillen: Keine
|
Verfasst am: 09.11.2007, 12:27 Titel: |
|
|
meines wissens nach gibts z.B. für mysql ein C API. über das könntest du doch dann direkt mit der datenbank, die auf dem server läuft, aus c++ heraus arbeiten. |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 09.11.2007, 16:20 Titel: |
|
|
wenn du an einem schönen weg in c++ interessiert bist, solltest du dirASIO mal ansehen. Das ist eine wunderschöne C++ Library für allerlei network arbeiten, die ähnlich wie die STL und wie BOOST programmiert wurde.
Gruß DXer |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 09.11.2007, 16:22 Titel: |
|
|
Ich würde ein simples kryptographisches Verfahren benutzen, um es wenigstens halbwegs sicher zu machen.
Sowas in der Art:
http://de.wikipedia.org/wiki/Salted_Hash
Irgendwo eine MD5 oder SHA1 oder sonstwas Hashfunktion für C++ zu finden sollte kein großes Thema sein. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 09.11.2007, 17:29 Titel: |
|
|
Nun, SHA-1 oder MD5 würde ich wiederum nur benutzen, falls er das ganze noch mit einem Passwort mit sichern will. Wendest du das Zeug auf die Highscore-Daten selbst an, wirst du nicht mehr schlau draus _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
|
Nach oben |
|
|
PeaceKiller JLI Master
Alter: 35 Anmeldedatum: 28.11.2002 Beiträge: 970
Medaillen: Keine
|
Verfasst am: 09.11.2007, 20:45 Titel: |
|
|
Irgendwas ist wohl falsch gelaufen, bei deinem Hash:
Code: | echo -n "" | md5sum
d41d8cd98f00b204e9800998ecf8427e - |
Krieg ich trotzdem einen Keks? _________________ »If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 09.11.2007, 20:49 Titel: |
|
|
War ja auch nicht so schwer Der erstbeste "echte" hash den ich finden konnte. _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
Chriss Senior JLI'ler
Anmeldedatum: 18.08.2004 Beiträge: 267
Medaillen: Keine
|
Verfasst am: 10.11.2007, 11:36 Titel: |
|
|
@gombolo
Am besten machst du es wie es TLOP bereits geschrieben hat.
Dazu brauchst du eigentlich nur 3 Schritte ausführen.
1. TCP/IP Verbindung per Socket aufbauen (c-worker)
2. Request über den HTTP 1.1 GET Befehl senden. (HTML World)
3. Antwort des Servers empfangen und die Verbindung schließen (c-worker)
Dein Request würde dann so aussehen
Code: |
GET /myScript.php?name=PlayerName&score=1337 HTTP/1.1
Host: www.myurl.de
User-Agent: My Game
Accept: */*
Connection: close
|
Gruß Chriss
EDIT: Schau dir auch mal POST an, da kannst du mehr an Daten schicken |
|
Nach oben |
|
|
foreach ehem. hanse
Anmeldedatum: 08.05.2004 Beiträge: 183
Medaillen: Keine
|
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 10.11.2007, 18:00 Titel: |
|
|
Chriss hat Folgendes geschrieben: | Am besten machst du es wie es TLOP bereits geschrieben hat.
Dazu brauchst du eigentlich nur 3 Schritte ausführen. |
Hmm...es gibt verschiedene Varianten, aber für das, was ich geschrieben hatte, braucht man grundsätzlich nur einen Schritt, bei dem man nicht auf Sockets angewiesen ist.
Wenn man irgendeine Rückmeldung von der php-Datei braucht, sollte man sowas benutzen, aber wenn du ausschließlich deine Daten hochsenden willst und fertig, reicht auch ein Aufruf von ShellExecute() mit SW_HIDE _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
Jonathan_Klein Living Legend
Alter: 37 Anmeldedatum: 17.02.2003 Beiträge: 3433 Wohnort: Siegerland Medaillen: Keine
|
Verfasst am: 10.11.2007, 18:14 Titel: |
|
|
Der Vorteil von ShellExecute ist, dass es schnell und einfach zu implementieren ist. Du würdest den Browser öffnen und die aktuelle Highscore da anzeigen. Dafür muss das Spiel natürlich in einem Fenster laufen, oder minimiert oder beendet werden.
Wenn du es mit einer "echten" Verbindung machst, könnte die Firewall meckern, da dein Programm ins Internet will und nicht der Standardbrowser. Dafür müsstest du das Spiel nicht beenden und könntest im Spiel direkt die neue Highscore anzeigen lassen. (Wenn du dir dann entsprechend die neuen Daten hohlen würdest). _________________ https://jonathank.de/games/ |
|
Nach oben |
|
|
manu Super JLI'ler
Alter: 35 Anmeldedatum: 09.03.2006 Beiträge: 327 Wohnort: allgäu (DE) Medaillen: Keine
|
Verfasst am: 10.11.2007, 18:39 Titel: |
|
|
Jonathan_Klein hat Folgendes geschrieben: | Der Vorteil von ShellExecute ist, dass es schnell und einfach zu implementieren ist. Du würdest den Browser öffnen und die aktuelle Highscore da anzeigen. Dafür muss das Spiel natürlich in einem Fenster laufen, oder minimiert oder beendet werden.
Wenn du es mit einer "echten" Verbindung machst, könnte die Firewall meckern, da dein Programm ins Internet will und nicht der Standardbrowser. Dafür müsstest du das Spiel nicht beenden und könntest im Spiel direkt die neue Highscore anzeigen lassen. (Wenn du dir dann entsprechend die neuen Daten hohlen würdest). |
also mein Paketfilter meckert schon, wenn ein Programm nur über meinen Browser irgend ne internetadresse aufruft und nicht selbst eine verbindung aufbaut. |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 11.11.2007, 00:06 Titel: |
|
|
Ja, ShellExecute reicht für manche Firewalls auch schon aus, wie ich schon feststellen musste
Wenn man dort SW_HIDE angibt, muss das eigene Programm übrigens nicht minimiert sein o.ä., da der Aufruf versteckt abläuft. Ob man ihn trotzdem irgendwie abfangen kann, weiß ich nicht. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
|
|