如何在php中使用curl从服务器获取响应

DNeb

我正在使用 CURL 从服务器获取数据。它的工作方式如下:

  • 设备将数据发送到在服务器上找到的路由应用程序。
  • 要从路由应用程序获取数据,客户端必须使用指定服务器地址、端口和参数的 GET 方法进行询问。
  • 连接客户端后,应用程序开始向连接的客户端发送关于从设备到达的每个新数据包的数据。见下图

在此处输入图片说明

现在让我们看看我运行以获得响应的代码:

<?php
   $curl = curl_init('http://192.168.1.4/online?user=dneb'); 
   curl_setopt($curl, CURLOPT_PORT, 1818); 
   curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 
   $result = curl_exec($curl);
   curl_close($curl);
   echo $result;

通过这个 CURL 请求,我可以从路由应用程序中获取响应数据。但是路由应用程序永远不会停止向连接的客户端发送数据,所以只有当我关闭路由应用程序时我才会得到结果,它会将每个数据作为一个进行回显。现在我的问题是如何在不关闭连接或路由应用程序关闭的连接的情况下回显每个数据?即接收到数据后,无条件显示数据。您可以建议任何其他选项以使用 TCP 将此数据转发到另一台服务器。谢谢!

hanshenrik

永远不会关闭的 http 连接?不要认为 php 的 curl 绑定适合那个。但是你可以使用socket api,

$sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
socket_set_block($sock);
socket_connect($sock,"192.168.1.4",1818);
$data=implode("\r\n",array(
'GET /online?user=dneb HTTP/1.0',
'Host: 192.168.1.4',
'User-Agent: PHP/'.PHP_VERSION,
'Accept: */*'
))."\r\n\r\n";
socket_write($sock,$data);
while(false!==($read_last=socket_read($sock,1))){
   // do whatever
    echo $read_last;
}
var_dump("socket_read returned false, probably means the connection was closed.",
"socket_last_error: ",
socket_last_error($sock),
"socket_strerror: ",
socket_strerror(socket_last_error($sock))
);
socket_close($sock);

或者甚至是 http fopen,

$fp=fopen("http://192.168.1.4:1818/online?user=dneb","rb");
stream_set_blocking($fp,1);
while(false!==($read_last=fread($fp,1))){
// do whatever
    echo $read_last;
}
var_dump("fread returned false, probably means the connection was closed, last error: ",error_get_last());
fclose($fp);

(如果 fopen 可以使用 80 以外的其他端口,则 idk。如果您allow_url_fopen在 php.ini 中禁用,这也不起作用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Volley中获取JSONObject服务器响应

来自分类Dev

如何在C中使用cURL从服务器下载ZIP文件?

来自分类Dev

如何在C中使用cURL从服务器下载ZIP文件?

来自分类Dev

如何在D上获取服务器响应代码?

来自分类Dev

如何在iOS中使用url从服务器获取多个图像

来自分类Dev

如何在Linux中使用ioctl获取网关IP和名称服务器IP

来自分类Dev

如何在android中使用HttpUrlConection发送请求以从服务器获取特定数据?

来自分类Dev

如何使用PHP获取服务器响应时间

来自分类Dev

如何在Iron中使用服务器发送的事件?

来自分类Dev

如何在blazor服务器应用中使用signalr从http客户端获取令牌?

来自分类Dev

如何在Android中使用ID从服务器获取数据

来自分类Dev

在php脚本中执行curl命令并从服务器获取响应并将其提取

来自分类Dev

如何在D上获取服务器响应代码?

来自分类Dev

如何在PHP中使用“ ../../[...]../../ETC/PASSWD”对服务器进行可能的攻击?

来自分类Dev

如何在Fedora中使用特定的镜像服务器?

来自分类Dev

PHP cURL-PARSE服务器响应

来自分类Dev

如何在iOS中使用url从服务器获取多个图像

来自分类Dev

如何在Linux中使用ioctl获取网关IP和名称服务器IP

来自分类Dev

如何在远程Linux服务器中使用Maven?

来自分类Dev

如何使用curl登录服务器?

来自分类Dev

如何在Android中使用AQuery从服务器端获取数据?

来自分类Dev

如何在Laravel中使用Redis服务器检测?

来自分类Dev

如何在Codeigniter中使用CURL在两个服务器之间发送数据?

来自分类Dev

如何在无服务器框架中使用 jquery?

来自分类Dev

如何在 jenkins 服务器中使用 json 文件?

来自分类Dev

如何在循环的服务器请求中使用 Phaser?

来自分类Dev

如何在服务器中使用 imap 接收 gmail?

来自分类Dev

如何从 PHP 服务器异步获取响应

来自分类Dev

如何在同一服务器中使用节点 js 重定向以响应 js 应用程序?

Related 相关文章

  1. 1

    如何在Volley中获取JSONObject服务器响应

  2. 2

    如何在C中使用cURL从服务器下载ZIP文件?

  3. 3

    如何在C中使用cURL从服务器下载ZIP文件?

  4. 4

    如何在D上获取服务器响应代码?

  5. 5

    如何在iOS中使用url从服务器获取多个图像

  6. 6

    如何在Linux中使用ioctl获取网关IP和名称服务器IP

  7. 7

    如何在android中使用HttpUrlConection发送请求以从服务器获取特定数据?

  8. 8

    如何使用PHP获取服务器响应时间

  9. 9

    如何在Iron中使用服务器发送的事件?

  10. 10

    如何在blazor服务器应用中使用signalr从http客户端获取令牌?

  11. 11

    如何在Android中使用ID从服务器获取数据

  12. 12

    在php脚本中执行curl命令并从服务器获取响应并将其提取

  13. 13

    如何在D上获取服务器响应代码?

  14. 14

    如何在PHP中使用“ ../../[...]../../ETC/PASSWD”对服务器进行可能的攻击?

  15. 15

    如何在Fedora中使用特定的镜像服务器?

  16. 16

    PHP cURL-PARSE服务器响应

  17. 17

    如何在iOS中使用url从服务器获取多个图像

  18. 18

    如何在Linux中使用ioctl获取网关IP和名称服务器IP

  19. 19

    如何在远程Linux服务器中使用Maven?

  20. 20

    如何使用curl登录服务器?

  21. 21

    如何在Android中使用AQuery从服务器端获取数据?

  22. 22

    如何在Laravel中使用Redis服务器检测?

  23. 23

    如何在Codeigniter中使用CURL在两个服务器之间发送数据?

  24. 24

    如何在无服务器框架中使用 jquery?

  25. 25

    如何在 jenkins 服务器中使用 json 文件?

  26. 26

    如何在循环的服务器请求中使用 Phaser?

  27. 27

    如何在服务器中使用 imap 接收 gmail?

  28. 28

    如何从 PHP 服务器异步获取响应

  29. 29

    如何在同一服务器中使用节点 js 重定向以响应 js 应用程序?

热门标签

归档