Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 套接字“从返回的recvfrom”;“不仅仅是回应”;_Php_Sockets_Udp - Fatal编程技术网

Php 套接字“从返回的recvfrom”;“不仅仅是回应”;

Php 套接字“从返回的recvfrom”;“不仅仅是回应”;,php,sockets,udp,Php,Sockets,Udp,我用C++编写了一个UDP服务器,目前正在尝试将数据从PHP发送到服务器并接收响应。第一次一切正常,但php缓冲区会向其添加一些字符(例如,响应仅为“1”,响应为“1to”或“1gg”。我已检查服务器是否发送了正确的响应 以下是PHP中的代码: $socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); socket_connect($socket, '192.168.178.27', 8000); socket_send($socket, $

我用C++编写了一个UDP服务器,目前正在尝试将数据从PHP发送到服务器并接收响应。第一次一切正常,但php缓冲区会向其添加一些字符(例如,响应仅为“1”,响应为“1to”或“1gg”。我已检查服务器是否发送了正确的响应

以下是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 . " ?");

接收的字节数由
套接字\u recvfrom()函数本身返回

表格:

返回值

socket\u recvfrom()返回接收到的字节数,如果出现错误,则返回FALSE

因此,如果不是
FALSE
,请仅使用
socket\u recvfrom()
返回值所指示的
$buf
中的字节数