komaspieler
New Member
Hi
ich habe ein kleines, aber sehr störendes Problem: ich arbeite zur Zeit an einem Projekt, bei dem eine Socketverbindunge via fsockopen() zu einem Counter-Strike: Source Server von Nöten ist.
Schön und gut, die Verbindung baut sich ordnungsgemäß auf, keine Timeouts, alles super.
Nun sende ich den Befehl für die Ausgabe der Serverinformationen (s. Valve Developer Wiki & PHP Ausschnitt unten) an den Server - und erwarte eigentlich eine Rückmeldung vom Server.
Jedoch bleibt bei der Statusüberprüfung durch socket_get_status() der Wert unread_bytes stetig auf 0, es wurde also keine Antwort vom Server empfangen.
Soweit sogut, jeder Programmierer/Coder würde hier vermuten, dass ein Fehler im Script/Befehl vorliegt - habe ich auch erst getan und dieselbe Funktion auf einem anderen Server getestet - und siehe da: die Antwort vom Gameserver wird erhalten und ausgegeben.
Ich vermute also, dass bei meinem eigentlichen Server ein Konfigurationsfehler o.ä. vorliegt, weiss mir aber nicht zu helfen, da mir keine Konfigurationsmöglichkeiten in Richtung Sockets bei PHP bekannt sind.
Hier einige Daten zum (v)Server und Script:
Modell: vServer (OS: Debian)
Anbieter: server4you (ich denke mal, daran liegt es *hust*)
Hier die technischen Daten auf einfachstem Weg, den ich mir denken konnte (beancounters):
Auszug aus dem Script (auf das wesentliche reduziert):
Ich habe bereits zum testen die Firewall deaktiviert und andere Gameserver-IPs benutzt, jedoch immer dasselbe Ergebnis auf dem vServer erhalten.
Die php.ini habe ich nun ebenfalls angehangen, falls es hilft (Sockets sind an.. mehr steht da ja ned wirklich drin).
Vielleicht habt ihr eine Idee, woran das liegen könnte.
Danke im Voraus
Thomas "komaspieler"
ich habe ein kleines, aber sehr störendes Problem: ich arbeite zur Zeit an einem Projekt, bei dem eine Socketverbindunge via fsockopen() zu einem Counter-Strike: Source Server von Nöten ist.
Schön und gut, die Verbindung baut sich ordnungsgemäß auf, keine Timeouts, alles super.
Nun sende ich den Befehl für die Ausgabe der Serverinformationen (s. Valve Developer Wiki & PHP Ausschnitt unten) an den Server - und erwarte eigentlich eine Rückmeldung vom Server.
Jedoch bleibt bei der Statusüberprüfung durch socket_get_status() der Wert unread_bytes stetig auf 0, es wurde also keine Antwort vom Server empfangen.
Soweit sogut, jeder Programmierer/Coder würde hier vermuten, dass ein Fehler im Script/Befehl vorliegt - habe ich auch erst getan und dieselbe Funktion auf einem anderen Server getestet - und siehe da: die Antwort vom Gameserver wird erhalten und ausgegeben.
Ich vermute also, dass bei meinem eigentlichen Server ein Konfigurationsfehler o.ä. vorliegt, weiss mir aber nicht zu helfen, da mir keine Konfigurationsmöglichkeiten in Richtung Sockets bei PHP bekannt sind.
Hier einige Daten zum (v)Server und Script:
Modell: vServer (OS: Debian)
Anbieter: server4you (ich denke mal, daran liegt es *hust*)
Hier die technischen Daten auf einfachstem Weg, den ich mir denken konnte (beancounters):
Code:
uid resource held maxheld barrier limit failcnt
XXXXXX: kmemsize 3210332 4949457 9384760 10323236 0
lockedpages 0 0 430 430 0
privvmpages 46161 72113 131448 144594 0
shmpages 655 3375 23020 23020 0
dummy 0 0 0 0 0
numproc 45 73 144 144 0
physpages 15042 29773 0 2147483647 0
vmguarpages 0 0 98304 2147483647 0
oomguarpages 24522 38134 98304 2147483647 0
numtcpsock 23 63 244 244 0
numflock 3 22 336 369 0
numpty 1 3 24 24 0
numsiginfo 0 10 768 768 0
tcpsndbuf 17824 276272 1884024 3681759 0
tcprcvbuf 0 342080 1884024 3681759 0
othersockbuf 14904 102180 844366 1481926 5
dgramrcvbuf 0 248008 844366 844366 0
numothersock 13 56 288 288 0
dcachesize 475846 564816 1503190 1548286 0
numfile 1094 1657 3360 3360 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
numiptent 44 74 96 96 0
Auszug aus dem Script (auf das wesentliche reduziert):
PHP:
<?php
$stream = fsockopen("udp://".$row["ip"], $row["port"], $errno, $errstr);
$cmd = "\xFF\xFF\xFF\xFF\x54\x53\x6F\x75\x72\x63\x65\x20\x45\x6E\x67\x69\x6E\x65\x20\x51\x75\x65\x72\x79\x00";
fwrite($stream, $cmd, strlen($cmd));
$status = socket_get_status($stream);
print_r($status); # unread_bytes werden hier auf dem s4y vServer als ständig leer (= 0) angezeigt
?>
Ich habe bereits zum testen die Firewall deaktiviert und andere Gameserver-IPs benutzt, jedoch immer dasselbe Ergebnis auf dem vServer erhalten.
Die php.ini habe ich nun ebenfalls angehangen, falls es hilft (Sockets sind an.. mehr steht da ja ned wirklich drin).
Vielleicht habt ihr eine Idee, woran das liegen könnte.
Danke im Voraus
Thomas "komaspieler"
Attachments
Last edited by a moderator: