|
Posted by Adam on 08/11/06 14:10
On 7 Aug 2006 17:49:08 -0700, bryan wrote:
>I'm trying to query a HL Server and return the "status" of it. I'm
>unsure of how to do this exactly so I need some help, what I have so
>far is as follows...
> 1. <?php
> 2. // Host / Port Settings:
> 3. $host = '70.86.248.86';
> 4. $socket = fsockopen('udp://' . $host, 27015, $errno, $errstr);
> 5. if ($socket) {
> 6. echo 'working';
> 7. if (fwrite($socket, 'status')) {
> 8. echo fread($socket, 128);
> 9. } else {
> 10. echo 'Problems writing';
> 11. }
> 12. } else {
> 13. echo 'not working';
> 14. }
> 15. ?>
>Does anybody know how to do this properly or succeeded in doing this
>before?
>I am trying to query a counter-strike server and return the current
>players/max players.
My short answer is *don't bother*!
I tried for weeks to get sockets to behave for a similar application
(but for an online flight sim). It seems each incarnation of PHP
screws the sockets code around differently. After a fair while, I
found that some bugs reported in PHP3 are still there.
I also found differences in behaviour between Win32 and Unix/Linux
implementations of sockets. Don't be misled by the online function
references that make it look easy - I found that a fair few of the
routines just did not work consistently.
Also ... check you're getting past your firewall! I used a network
packet sniffer to see traffic actually leaving one machine then seeing
what (if anything) appeared on the other.
Adam.
Navigation:
[Reply to this message]
|