socket_recvfrom返回“超过响应”

时间:2014-06-20 22:38:25

标签: php sockets udp

我用C ++写了一个UDP服务器,我正在尝试将数据从PHP发送到服务器并接收响应。第一次一切正常,但是php缓冲区会为它添加一些字符(例如,响应只是'1',它回显'1'或'1gg'。我检查过服务器发送了正确的响应。< / p>

以下是PHP中的代码:

$socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_connect($socket, '192.168.178.27', 8000);

socket_send($socket, $data, strLen($data), 0);

$from = "";
$port = 0;

socket_recvfrom($socket, $buf, 2048, 0, $from, $port);
socket_close($socket);

return $buf;

在调用函数的文件中:

echo UDP::SendRecv("actor ". $actor->internal_name . " ?");

1 个答案:

答案 0 :(得分:0)

接收的字节数由socket_recvfrom()函数本身返回。

形成documentation to socket_recvfrom()

  

返回值

     

socket_recvfrom()返回收到的字节数,如果出错则返回 FALSE

所以只使用来自$buf的字节数,如socket_recvfrom()返回值所示,如果不是FALSE