On 7 Aug 2006 17:49:08 -0700, bryan wrote:
Quote:
>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.