我用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 . " ?");
答案 0 :(得分:0)
接收的字节数由socket_recvfrom()
函数本身返回。
形成documentation to socket_recvfrom()
:
返回值
socket_recvfrom()返回收到的字节数,如果出错则返回 FALSE 。
所以只使用来自$buf
的字节数,如socket_recvfrom()
返回值所示,如果不是FALSE
。