sock'et help plz

BomberJack

Erfahrenes Mitglied
Hi all,
wie schon aus einem anderen thread zu entnehmen war versuche eine verbindung zu einem anderen server herrzustellen. ich hab dazu folgenden code mir zusammengebastelt usw. halt :D. bloß leider sagt er mir beim colse befehl immer fehler auf dem webserver

<?PHP
$sock = pfsockopen("telnet://europe.battle.net", "6112", $errno, $errstr);
if (!$sock) {
echo "$errstr ($errno)<br>\n";
} else {
fputs("c");
$zeichen=fgetc($sock);
print "$zeichen";
}
fclose ($sock);
?>

Das skritpt soll zum server connecten den befehl "c" gleich nach dem connect schreiben und dann mir ausgeben was der server an info bringt
bloß nach ausführen des skripts bringt er mir fehler in der zeile

fclose ($sock) usw.

weiß wer rat wie ich die ausgabe dann im browser sehen kann und er keine fehlermeldung mehr bringt??

MFG
BomberJack
 
hmmm

ich habs lokal und auf nem richtigen server gestestet und mit telnet selbst, ich kriege keine verbindung zu besagtem server.

irgendwas stimmt nicht, ich denke, das protoll ist nicht

außerdem hast du noch fehler im code (falls die verbindung stehen sollte):
PHP:
fputs($sock,"c");
ist richtig.
 
Zuletzt bearbeitet:
-

PHP:
<?PHP 
$sock = pfsockopen("europe.battle.net", "6112", $errno, $errstr); 
if (!$sock) { 
echo "$errstr ($errno)<br>\n"; 
} else { 
fputs( $sock, "c"); 
$zeichen=fgetc($sock); 
print $zeichen; 
} 
fclose ($sock); 
?>
 
thx ich werd das skript gleich mal testen und schauen mit windows telnet krieg ich komischerweise auch keine verbindung herr (liegt wohl daran das man port nicht angeben kann :( )
aber mit clr telnet 3.1 hat die connect wunderbar hingehauen :D.
 
hmmm shit skript haut doch noch nicht ganz hin :(
allso ich stell mir das vom prinzip so vor

<?PHP
$sock = pfsockopen("europe.battle.net", "6112", $errno, $errstr);
öffnet die verbindung zum server

if (!$sock) {
echo "$errstr ($errno)<br>\n";
meldet wenn die connect nich zustande kommt

} else {
fputs( $sock, "c");
übergibt dem server das zeichen "c"

$zeichen=fgetc($sock);
print $zeichen;
}
Hiermit wird die Serverausgabe ausgegeben

fclose ($sock);
?>
hiermit schließ ich die verbinung wieder zum server

Ist das soweit richtig wie ich das sehe?? weil sobald ich das skript starte bringt er mir alls ausgabe nur "c" auf der webpage und nicht den eigentlich inhalt den der server jetzt rausgeben würde wenn ich z.b via telnet connect
weil nach dem commando "c" müßte ich jetzt meine login daten dem server übergeben aber soweit komm ich ja erst garnicht bzw. bei meine print ausgabe kommt jetzt nicht wie angenommen ein bild mit Username: Passwort usw. was ich eigentlich gedacht habt :(
wie kriege ich dies nun am schlausen hin??

MFG
BomberJack
 
ne selbes ergebnis er spuckt mir nichts bzw. nur C ich habs jetzt mit noch einen wert erweitert weil ich da was netes gelesen hab so sieht mein skript gerde aus:

<?PHP
$sock = pfsockopen("europe.battle.net", "6112", $errno, $errstr);
if (!$sock) {
echo "$errstr ($errno)<br>\n";
} else {
fwrite( $sock, "c");
fwrite( $sock, "Loginname");
fwrite( $sock, "Passwort");
fwrite( $sock, "/join Chat"); das erste commando nachdem er sich mit dem server verbunden hat und eingeloggt ist.
set_socket_blocking($sock,0);
$zeichen=fgetc($sock);
print $zeichen;
}
fclose ($sock);
?>



set_socket_blocking($sock,0); (soll das abbrechen der verbindung nach jeden befehl blockieren soweit ich weiß) selbst ohne diesen befehl spuck er mir nix aus :(
 
-

PHP:
<pre>
<?PHP

$sock = pfsockopen("europe.battle.net", 6112, $errno, $errstr, 50);
if (!$sock) {
    echo "$errstr ($errno)<br>\n";
} else {
fputs( $sock, "c");
for( $i=0;$i=1024;$i++)
 {
$test=fgetc($sock);
echo $test;
 }
}
?>
</pre>
Getestet und für "Gut" erklärt :)
Lange Nacht im Chat gewesen.
 
grrrrrrrrrrrrrr

das is doch zum kotzen!
heisst das, dass ich wieder der einzige bin, bei dem dieses script NICHT funzt???

Connection from [217.226.245.125] refused
Fatal error: Maximum execution time of 30 seconds exceeded in c:\apache\htdocs\battlenet.php on line 10

auf deutsch:timeout!

das ist genau das gleiche wie bei den counterstrike-serverabfragen!
WAS MACHE ICH FALSCH???

(apache,php4,win2k,keine firewall)
 
-

Ne, keine Sorge. Bei mir geht das manchmal auch nicht. Muss wohl am Server liegen, obwohl ich über eine reine Telnet Verbindung keine Geschwindigkeitsprobleme hab. In der for-Schleife muss man mit dem max Wert für $i ein bisschen probieren. Ist irgendwie immer unterschiedlich.
 
Zurück