Php 从udpsocket发送和获取数据

Php 从udpsocket发送和获取数据,php,sockets,Php,Sockets,我正在使用服务器列表查看器 有人告诉我,我应该使用UdpSocket将数据发送到主服务器并从主服务器接收数据(在本例中为MW2-IW4游戏) 这就是您使用的命令或套接字 "\xff\xff\xff\getservers IW4 <MASTERSERVERPORTHERE> full empty\x00" 只需使用fsockopen,它会简单得多 $fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr); if (!$fp) e

我正在使用服务器列表查看器 有人告诉我,我应该使用UdpSocket将数据发送到主服务器并从主服务器接收数据(在本例中为MW2-IW4游戏)

这就是您使用的命令或套接字

"\xff\xff\xff\getservers IW4 <MASTERSERVERPORTHERE> full empty\x00"

只需使用fsockopen,它会简单得多

$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);

if (!$fp) echo "ERROR: $errno - $errstr<br />\n";

fwrite($fp, "\n");
while (!feof($fp)) {
    echo fgets($fp, 128);
}
fclose($fp);
$fp=fsockopen(“udp://127.0.0.1“,13,$errno,$errstr);
如果(!$fp)回显“错误:$errno-$errstr
\n”; fwrite($fp,“\n”); 而(!feof($fp)){ echo fgets(fp,128美元); } fclose($fp);
我前一阵子就知道怎么做了,还记得这篇文章,如果还有人对它感兴趣,这就是你怎么做的:

<?php
$ip = "127.0.0.1";
$port = 1337;
$socket = fsockopen('udp://'.$ip, $port);
stream_set_blocking($socket, 0);
stream_set_timeout($socket, 1); //1 = timeout

fwrite($socket, "YOUR UDP COMMAND HERE\n");

$time=time()+1; //1=timeout
$returned = "";
while($time > time()) {
    $returned .= fgets($socket);
}


echo($returned); // the returned value
@fclose($socket); //we are done, so better close it.
?>


你好,我不太懂你的代码。。。首先,我应该将要发送的命令放在哪里?第二件事,$errno和$errstr..是什么。。?感谢$errno和$errstr处理错误等,您可以在“fwrite”函数中写入您想要的内容,
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);

if (!$fp) echo "ERROR: $errno - $errstr<br />\n";

fwrite($fp, "\n");
while (!feof($fp)) {
    echo fgets($fp, 128);
}
fclose($fp);
<?php
$ip = "127.0.0.1";
$port = 1337;
$socket = fsockopen('udp://'.$ip, $port);
stream_set_blocking($socket, 0);
stream_set_timeout($socket, 1); //1 = timeout

fwrite($socket, "YOUR UDP COMMAND HERE\n");

$time=time()+1; //1=timeout
$returned = "";
while($time > time()) {
    $returned .= fgets($socket);
}


echo($returned); // the returned value
@fclose($socket); //we are done, so better close it.
?>