Daten schnell vom Server lesen
Übersicht

ChristianKBetreff: Daten schnell vom Server lesen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich will alle laufenden Spiele ( bzw. alle IPs der Hosts ) auf einem Server speichern und dann von den Clients abrufen lassen.
Ich habe hier im Forum auch schon ein paar Sachen gefunden, aber ich weiss nicht, wie ich die Daten am schnellsten vom Server abrufen kann. Soll ich das mit PHP, FTP oder doch mit irgendwas anderem machen? Mir kommt es dabei vor allem auf Geschwindigkeit und Zuverlässigkeit an. Vielen Dank schon mal im Voraus. ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
DLL schreiben die dir MySQL Queries ausführt und dir ne Datenbank machen aufm Webserver wo du es einträgst.
Als zweitschnellstes käme dann PHP FTP wäre worst case, da die sicherheit da ziemlich im eimer ist, auch für deinen FTP zugang. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, dann werd ich MySQL nehmen. ![]() |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mir sind da noch zwei Fragen eingefallen:
1. Wenn ich die MySQL Datenbank über ein PHP-Script aufrufe ( und der Loginname und das Passwort in der PHP-Datei stehen ), sind meine Daten dann sicher? 2. Die IP-Adressen eines Hosts muss ja auch wieder vom Server gelöscht werden, wenn er das Spiel beenden. Was ist aber, wenn der PC des Hosts abstürtzt? Dann bleibt die IP noch auf dem Server. Kann man überprüfen, ob der Host noch aktiv ist? PS: Sorry für den Doppelpost. |
||
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
dann setzt ein timeout...
ales was älter als z.B. einen Tag ist, wird gelöscht und sicher ist im I-Net generell nichts |
||
Programmers dont die. They gosub without return... |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
php ist im Internet schon realtiv sicher.
Wenn die Serversoftware und Scripts keine Sicherheitslücken haben, kommt man auch nicht an das, was in der php drin steht. Letztendlich wird ja eigentlich nur von Server bestimmt, was der Client sehen darf und was nicht ^^ Gruß, Smily0412 |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für eure Antworten. ![]() Noch eine Frage: In BlitzMax kann man eine Datei direkt aus dem Internet öffnen: Code: [AUSKLAPPEN] Local file:TStream = ReadFile( "http::www.meinepage.de/datei.txt" )
Mit Blitz3D geht das leider nicht. Gibt es eine andere Möglichkeit? |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die IPs kann ich jetzt auf dem Server speichern und der Spieler kann dann auch an einem Spiel teilnehmen.
Aber das Problem mit dem Löschen der IP vom Server, wenn das Spiel beenden wird, besteht immer noch. Einen Timeout will ich eigentlich nicht verwenden. Spiele, die nicht mehr laufen, sollen garnicht erst angezeigt werden. Vielleicht könnte der Client beim Lesen der Serverliste überprüfen, ob ein Spiel noch läuft, und wenn nicht, dann wird es aus der Liste gelöscht. Habt ihr eine Idee, wie man das machen kann? |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das mit dem Timeout funktioniert so:
Du sendest deinen Clienten ein ping-Signal, welches sie mit einem Pong-Signal beantworten müssen. Kommt innerhalb einer bestimmten zeit kein pong ist der Client wohl tot. in Blitz3d kannst du die datei mit http abrufen. der port ist 80. Für das Protokoll findest du hier ne menge beispiele. |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ah, danke Smily. ![]() Wie sende ich denn das Ping-Signal? |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Genau so, wie du auch alle anderen Daten sendest. ![]() Writeline tcp, "PING" und du machst beim Client noch in der Auswertung: if string$ = "PING" Writeline tcp, "PONG" |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mein Problem sind ja nicht die Clients, sondern die Hosts, die das Spiel starten. Die IPs dieser Hosts werden auf einem Server gespeichert. Wenn dann jemand mitspielen will, wählt er aus der Liste der IPs eine aus und wird dann mit dem Host verbunden.
Ich müsste dann die Pings vom Server aus schicken oder der Client müsste jeden Host anpingen. Das würde aber recht lange dauern, mit jedem Host zu connecten. PS: Tut mir Leid, wenn ich dich falsch verstanden haben sollte. ![]() |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Ping wird nur benötigt, wenn ein Server Prüfen muss, ob der Client noch mit ihm verbunden ist.
Es reicht, wenn du z.B. alle 10 sek. ein Ping an die Clienten sendest. Ich schätz mal um die Hostliste abzurufen brauchst du nur eine einmalige kurze Verbindung mit dem server, wo die Liste ist. ^^ Gruß, Smily0412 |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Die Liste kann ich ja schon abrufen, funktioniert einwandfrei.
Nur müssen die Hosts, die nicht meht aktiv sind ( weil der Rechner abgestürtzt ist oder die Internetverbindung unterbrochen wurde ) auch wieder aus der Liste gelöscht werden. |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nur damit ich das Richtig verstehe:
Es gibt bei dir Clienten, Hosts und einen Server Auf dem Server ist eine Liste aller Hosts und die Hosts stellen verschiedene Spieleserver bzw Spielewelten dar? Lass den Server einfach in bestimmten abständen versuchen Kontakt mit dem host aufzunehmen. Gruß, Smily0412 |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
haha!! idee:
dein phpscript überprüft beim auslesen der liste das alter jedes Eintrags: ist er älter als 5 min wird er gelöscht! Ein host muss also innerhalb von 5 min sein spiel bestätigen: Er baut eine verbindung zum php-script auf und sendet ihm 125.455.255.354 ICH LEBE NOCH Der phpscript löscht daraufhin das spiel von 125.455.255.354 aus der liste und setzt es gleich danach wieder hinein So bleibt er immer jünger als 5 min. Sollte der Host für länger als 5 min ausfallen und irgend ein client holt sich die Host-liste wird der eintrag gelöscht. |
||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank, FTC! ![]() Ich denke, so werd ich das machen. Aber noch eine Frage: Der Host baut alle 5 Minuten eine Verbindung zum Server auf. Also würde er ja jedes Mal das hier machen: Code: [AUSKLAPPEN] stream = OpenTCPStream( "www.DerEineServer.de", 80 )
Das braucht ja immer etwas Zeit, zum Server zu connecten. Kann man die Verbindung einfach das ganze Spiel lang stehen lassen, ohne dass der Server überlastet wird oder es zu Performance-Problemen kommt? |
||
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
kannst die verbindung ruhig offen lassen ich weiss nur nicht ob das HTT-Protokoll das zulässt..... da ich erst seit 1 monat inet habe kenn ich mich da noch nich so aus... | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group