Hey mensen, ik zit met een probleem. Ik ben een script aan het maken om gameservers te beheren via rcon. Nou gebruik ik hiervoor sockets. Het sturen van commando's en alles werkt al. Het probleem zit echter in de output.
De gameserver moet, na het ontvangen van het commando, een reactie teruggeven. Denk bijvoorbeeld aan het "map_rotate" commando. Dan meld de server netjes "Server changing map to mapnaam". Dit doet de server ook wel, maar om een of andere vreemde reden meent mijn script alleen output te hebben wanneer die output bestaat uit meerdere regels.
Zie ik in onderstaande functie iets belangrijks over het hoofd, of doe ik gewoon weer ontzettend stom en ben ik af. Overigens maakt deze functie deel uit van een class...
De gameserver moet, na het ontvangen van het commando, een reactie teruggeven. Denk bijvoorbeeld aan het "map_rotate" commando. Dan meld de server netjes "Server changing map to mapnaam". Dit doet de server ook wel, maar om een of andere vreemde reden meent mijn script alleen output te hebben wanneer die output bestaat uit meerdere regels.
Zie ik in onderstaande functie iets belangrijks over het hoofd, of doe ik gewoon weer ontzettend stom en ben ik af. Overigens maakt deze functie deel uit van een class...
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| // De functie om RCon commandos te sturen, maakt gebruik van bovenstaande _sendCommand function rcon_server($command) { $socket = fsockopen("udp://".$this->ip,$this->port, $errno, $errstr, 2); socket_set_timeout($socket,2); if (!($socket)) { return $errstr; exit(); } else { $query = "\xFF\xFF\xFF\xFFrcon " . $this->rconpass . " " . $command; fwrite($socket,$query); } $data = ''; while ($d = fread ($socket, 10000)) { $data .= $d; } fclose ($socket); $data = preg_replace ("/....print\n/", "", $data); return $data; } |
[ Voor 6% gewijzigd door MueR op 05-09-2005 16:48 ]
Anyone who gets in between me and my morning coffee should be insecure.