|
You last visited: Today at 14:24
Advertisement
Udp Timeout Probleme
Discussion on Udp Timeout Probleme within the Web Development forum part of the Coders Den category.
10/26/2015, 22:09
|
#1
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
|
Udp Timeout Probleme
Hey Leute,
kurze Erklärung :
Ich will per 'stream_socket_client' und 'fwrite' eine Verbindung mit einem Gameserver aufbauen und Informationen abfragen.
Soweit geht das ganze auch, jedoch wenn der Server offline ist gibt es natürlich einen Timeout.
Da ich aber 20 Server prüfe und wenn nur 10 an sind habe ich 10 mal einen Timeout und die minimale Timeout Zeit ist 1 Sekunde.
Somit habe ich 10 Sekunden die ich unnötig warte, wie kann ich das Problem lösen ?
Gibt es eine art "ping", das ich kurz prüfen kann ob der Server online ist ?
liebe grüße
|
|
|
10/26/2015, 23:02
|
#2
|
dotCom
elite*gold: 12400
Join Date: Mar 2009
Posts: 15,865
Received Thanks: 4,375
|
Man könnte eine Funktion schreiben wo nicht mehr passiert als
Code:
fsockopen("udp://IP", PORT);
bei einem return true ist der Server online, bei einem false offline.
|
|
|
10/27/2015, 00:21
|
#3
|
Moderator
elite*gold: 558
Join Date: Feb 2010
Posts: 6,543
Received Thanks: 1,424
|
Sollte es sich dabei um Minecraft-Server handeln könnte der Ping Probleme mit Bukkit/Spigot verursachen. Ich bin mir nicht ganz sicher, ob Bukkit den Schutz auch auf das Query-Protokoll anwendet, aber ich meine schon.
Sollte der "Ping" erfolgreich sein, wird der Server für die nächsten Sekunden jeden weiteren Kontakversuch ablehnen. Du würdest also die Wartezeit bei Offline-Servern einsparen, aber bei allen Server die Online sind die Zeit um ein vielfaches erhöhen.
Wie wäre es mit einer leicht anderen Lösung? Du fragst beispielweise nur alle 5 Minuten deine Server mit einem Cronjob ab, dann muss niemand warten. Die Ergebnisse kommen dann in die Datenbank und deine Webseite zeigt dann die Informationen aus der Datenbank an.
Der Schutz von Bukkit würde auch bei mehreren schnellen Seitenaufrufen hintereinander (egal ob eine oder mehrere Personen) aktiv werden. Je nach Besucherzahlen wäre es also ein Glücksspiel, ob man Serverinformationen sehen kann oder (meistens) nicht.
|
|
|
10/27/2015, 09:26
|
#4
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
|
Quote:
Originally Posted by Devsome
Man könnte eine Funktion schreiben wo nicht mehr passiert als
Code:
fsockopen("udp://IP", PORT);
bei einem return true ist der Server online, bei einem false offline.
|
Wenn der Server nicht online ist läuft es ja wieder auf einen Timeout herraus.....
Quote:
Originally Posted by ComputerBaer
Sollte es sich dabei um Minecraft-Server handeln könnte der Ping Probleme mit Bukkit/Spigot verursachen. Ich bin mir nicht ganz sicher, ob Bukkit den Schutz auch auf das Query-Protokoll anwendet, aber ich meine schon.
Sollte der "Ping" erfolgreich sein, wird der Server für die nächsten Sekunden jeden weiteren Kontakversuch ablehnen. Du würdest also die Wartezeit bei Offline-Servern einsparen, aber bei allen Server die Online sind die Zeit um ein vielfaches erhöhen.
Wie wäre es mit einer leicht anderen Lösung? Du fragst beispielweise nur alle 5 Minuten deine Server mit einem Cronjob ab, dann muss niemand warten. Die Ergebnisse kommen dann in die Datenbank und deine Webseite zeigt dann die Informationen aus der Datenbank an.
Der Schutz von Bukkit würde auch bei mehreren schnellen Seitenaufrufen hintereinander (egal ob eine oder mehrere Personen) aktiv werden. Je nach Besucherzahlen wäre es also ein Glücksspiel, ob man Serverinformationen sehen kann oder (meistens) nicht.
|
Nein kein Minecraft, sondern Teeworlds.
Per cron kann ich es nicht machen, da es ja drum geht das ich erfahren will welche spieler online sind
|
|
|
10/27/2015, 09:34
|
#5
|
dotCom
elite*gold: 12400
Join Date: Mar 2009
Posts: 15,865
Received Thanks: 4,375
|
Quote:
Originally Posted by .ƒaℓsє.
Wenn der Server nicht online ist läuft es ja wieder auf einen Timeout herraus.....
Nein kein Minecraft, sondern Teeworlds.
Per cron kann ich es nicht machen, da es ja drum geht das ich erfahren will welche spieler online sind [emoji14]
|
Ja ebend es gibt einen timeout, wenn du vorher schaust mit dem was ich oben geschrieben habe und er in die Funktion nur geht wenn ein true wieder gegeben wird kommt doch auch kein timeout. So kannst du vorher schauen online oder offline.
Gesendet vom Handy
|
|
|
10/27/2015, 11:36
|
#6
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
|
Quote:
Originally Posted by Devsome
Ja ebend es gibt einen timeout, wenn du vorher schaust mit dem was ich oben geschrieben habe und er in die Funktion nur geht wenn ein true wieder gegeben wird kommt doch auch kein timeout. So kannst du vorher schauen online oder offline.
Gesendet vom Handy
|
Ja sprich wenn 10 Server nicht an sind gibt es 10 mal einen Timeout und somit muss ich immer noch 10 Sekunden warten, da die minimale Timeout Zeit eine Sekunde ist.
|
|
|
10/27/2015, 22:07
|
#7
|
elite*gold: 0
Join Date: Jun 2010
Posts: 3,407
Received Thanks: 2,024
|
Quote:
Originally Posted by .ƒaℓsє.
Ja sprich wenn 10 Server nicht an sind gibt es 10 mal einen Timeout und somit muss ich immer noch 10 Sekunden warten, da die minimale Timeout Zeit eine Sekunde ist.
|
Dann mach das ganze doch async mit Javascript.
|
|
|
10/27/2015, 22:39
|
#8
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
|
Quote:
Originally Posted by NotEnoughForYou
Dann mach das ganze doch async mit Javascript.
|
wie geht das den mit JavaScript ;o ?Was mir aber auch nicht sooo viel bringt, da ich auch ein Cron haben will und dort ja nur Php geht
|
|
|
10/27/2015, 22:46
|
#9
|
elite*gold: 0
Join Date: Jun 2010
Posts: 3,407
Received Thanks: 2,024
|
Quote:
Originally Posted by .ƒaℓsє.
wie geht das den mit JavaScript ;o ?Was mir aber auch nicht sooo viel bringt, da ich auch ein Cron haben will und dort ja nur Php geht
|
Naja was willst du denn genau machen? Irgendwelche Informationen abfragen, aber wieso solltest du dazu einen Cron brauchen? Wenn es schon ein Cronjob ist (der sowieso nur alle x minuten für gewöhnlich läuft), wieso sind dann zb. 10 Sekunden wartezeit so schlimm?
Klar geht das auch per Cron. Einfach nen javascript interpreter nutzen (z.B. node).
Alternativ: Wieso überhaupt PHP? Wenn du das parallelisieren willst nimm doch lieber eine andere Sprache (wo du ganz normal Threading betreiben kannst).
|
|
|
11/02/2015, 18:15
|
#10
|
elite*gold: 0
Join Date: May 2012
Posts: 870
Received Thanks: 642
|
Eventuell weil er keine andere Sprache außer PHP kann?
Ich würde einfach ein Objekt erstellen welches Datenspeichert und abgerufen werden kann. Somit vermeidest du die Ladezeit, da letztendlich der Cronjob die ganzen Abfragen macht und dir dann nur ein .json Objekt (Beispiel) erstellt welches dann für jeden Server einen Boolean speichert.
|
|
|
11/03/2015, 23:06
|
#11
|
elite*gold: 0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
|
Quote:
Originally Posted by xsrf
Eventuell weil er keine andere Sprache außer PHP kann?
Ich würde einfach ein Objekt erstellen welches Datenspeichert und abgerufen werden kann. Somit vermeidest du die Ladezeit, da letztendlich der Cronjob die ganzen Abfragen macht und dir dann nur ein .json Objekt (Beispiel) erstellt welches dann für jeden Server einen Boolean speichert.
|
Doch kann ich, jedoch wollte ich eigentlich kein Cron nutzen da die Infos dann nicht aktuell sind..Jedoch wird es nicht anders gehen und ich habe es schon per Cron gelöst.
|
|
|
|
Similar Threads
|
Timeout
04/20/2015 - DarkOrbit - 3 Replies
Is there any tools that will stop me timing out? So I can just sit in pally and not time out while I'm asleep or something?
|
SROKing Timeout ?
09/23/2012 - Silkroad Online - 7 Replies
Hello !
This morning I could connect to Sroking servers but now when I try it take much time and this error appear in Sroking : TIMEOUT ! Please register ...
I tried with 2 accounts and don't work !
Have you got an idea to solve my problem ?
Thx !
|
BF3 Timeout Probleme
06/20/2012 - Battlefield - 3 Replies
Hey liebe elitepvpers
ich habe folgendes Problem. Immer wenn ich BF3 starte werde ich nach ca 10-15 min aus dem Spiel gekickt und da steht etwas von Timeout. Ich habe das Spiel seit gestern habe mir den Russen Key gehollt falls das helfen kann:)
MFG
Dönerbär
|
fRO - Timeout
07/30/2011 - Ragnarok Online - 1 Replies
Mahlzeit.
Hab mir mal wieder openkore besorgt. Nach all dem was ich gelesen hab sollte es auf fro auch ohne probleme laufen. SVN sagt alles aufem neusten stand.
Bis zur Charauswahl komm ich.
Dann möchte er die Packets Encrypten 0072
und dann kommt der timeout zum mapserver...
hoffe irgendwer hat ne idee.
greetz
|
Never Timeout
09/24/2005 - WoW Exploits, Hacks, Tools & Macros - 12 Replies
Tired of timing out while macroing? Just click on help, other, other and leave the message box open. It's as simple as that.
|
All times are GMT +1. The time now is 14:24.
|
|