Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 14:24

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Udp Timeout Probleme

Discussion on Udp Timeout Probleme within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/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
False is offline  
Old 10/26/2015, 23:02   #2
dotCom
 
Devsome's Avatar
 
elite*gold: 12400
The Black Market: 104/0/0
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.
Devsome is offline  
Old 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.
ComputerBaer is offline  
Old 10/27/2015, 09:26   #4


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
Quote:
Originally Posted by Devsome View Post
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 View Post
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
False is offline  
Old 10/27/2015, 09:34   #5
dotCom
 
Devsome's Avatar
 
elite*gold: 12400
The Black Market: 104/0/0
Join Date: Mar 2009
Posts: 15,865
Received Thanks: 4,375
Quote:
Originally Posted by .ƒaℓsє. View Post
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
Devsome is offline  
Old 10/27/2015, 11:36   #6


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
Quote:
Originally Posted by Devsome View Post
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.
False is offline  
Old 10/27/2015, 22:07   #7
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,407
Received Thanks: 2,024
Quote:
Originally Posted by .ƒaℓsє. View Post
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.
NotEnoughForYou is offline  
Old 10/27/2015, 22:39   #8


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
Quote:
Originally Posted by NotEnoughForYou View Post
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
False is offline  
Old 10/27/2015, 22:46   #9
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,407
Received Thanks: 2,024
Quote:
Originally Posted by .ƒaℓsє. View Post
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).
NotEnoughForYou is offline  
Old 11/02/2015, 18:15   #10
 
xsrf's Avatar
 
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.
xsrf is offline  
Old 11/03/2015, 23:06   #11


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,118
Received Thanks: 2,435
Quote:
Originally Posted by xsrf View Post
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.
False is offline  
Reply


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.