JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Daten an einen Server schicken (C/C++ WinAPI)

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
gombolo
Mini JLI'ler



Anmeldedatum: 25.11.2006
Beiträge: 8

Medaillen: Keine

BeitragVerfasst am: 09.11.2007, 12:25    Titel: Daten an einen Server schicken (C/C++ WinAPI) Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
manu
Super JLI'ler


Alter: 35
Anmeldedatum: 09.03.2006
Beiträge: 327
Wohnort: allgäu (DE)
Medaillen: Keine

BeitragVerfasst am: 09.11.2007, 12:27    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 09.11.2007, 15:15    Titel: Antworten mit Zitat

http://myurl.de/write_score_to_database.php?name=TLoP&score=1337

Wink

Wäre jedenfalls der einfachste Weg, ner php-Datei auf einem Server Daten zu übermitteln. Die Url kannst du in C++ ganz einfach aufrufen, ohne irgendwelchen komplexen Apis.

<edit>Was daran Offtopic sein soll... Wink</edit>
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 09.11.2007, 16:20    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 09.11.2007, 16:22    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 09.11.2007, 17:29    Titel: Antworten mit Zitat

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 Wink
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 09.11.2007, 20:22    Titel: Antworten mit Zitat

Ich hatte erwartet, dass man soweit mitdenken würde Very Happy

Quasi dann so:
http://myurl.de/write_score_to_database.php?name=TLoP&score=1337&hash=d41d8cd98f00b204e9800998ecf8427e

(Wer mir sagen kann, woraus ich da den md5 hash gebildet hat, kriegt n keks)
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
PeaceKiller
JLI Master


Alter: 35
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 09.11.2007, 20:45    Titel: Antworten mit Zitat

Jonathan_Klein hat Folgendes geschrieben:
Ich hatte erwartet, dass man soweit mitdenken würde Very Happy

Quasi dann so:
http://myurl.de/write_score_to_database.php?name=TLoP&score=1337&hash=d41d8cd98f00b204e9800998ecf8427e

(Wer mir sagen kann, woraus ich da den md5 hash gebildet hat, kriegt n keks)


Irgendwas ist wohl falsch gelaufen, bei deinem Hash:

Code:
echo -n ""  | md5sum
d41d8cd98f00b204e9800998ecf8427e  -


Krieg ich trotzdem einen Keks? Smile
_________________
»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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 09.11.2007, 20:49    Titel: Antworten mit Zitat


War ja auch nicht so schwer Very Happy Der erstbeste "echte" hash den ich finden konnte.
_________________
https://jonathank.de/games/
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Chriss
Senior JLI'ler



Anmeldedatum: 18.08.2004
Beiträge: 267

Medaillen: Keine

BeitragVerfasst am: 10.11.2007, 11:36    Titel: Antworten mit Zitat

@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
Benutzer-Profile anzeigen Private Nachricht senden
foreach
ehem. hanse



Anmeldedatum: 08.05.2004
Beiträge: 183

Medaillen: Keine

BeitragVerfasst am: 10.11.2007, 14:37    Titel: Antworten mit Zitat

evtl. hilft das: http://www.tutorials.de/forum/c-c/133929-wininet-h-und-alles-dazu-gehoert.html
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 10.11.2007, 18:00    Titel: Antworten mit Zitat

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 Wink
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jonathan_Klein
Living Legend


Alter: 37
Anmeldedatum: 17.02.2003
Beiträge: 3433
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 10.11.2007, 18:14    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
manu
Super JLI'ler


Alter: 35
Anmeldedatum: 09.03.2006
Beiträge: 327
Wohnort: allgäu (DE)
Medaillen: Keine

BeitragVerfasst am: 10.11.2007, 18:39    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 11.11.2007, 00:06    Titel: Antworten mit Zitat

Ja, ShellExecute reicht für manche Firewalls auch schon aus, wie ich schon feststellen musste Wink

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum