gpt4 book ai didi

javascript - PHP TCP连接时间延迟

转载 作者:可可西里 更新时间:2023-11-01 02:42:07 25 4
gpt4 key购买 nike

我有一个 TCP 服务器在我的树莓派上运行,它可以在收到命令“r”时返回一些传感器数据。在 telnet 中,它看起来像:

>> r

123,123,131,321;

我立即通过 telnet 从服务器获得了答复。因为我想查看来自不同设备的数据,所以我决定构建一个 PHP 和 javascript 界面。

在我的 javascript 代码中我调用了一个 PHP methed to read 用于读取 TCP 服务器的 php 方法:

$.ajax('readTCP.php', {
type: 'POST',
cache: false,
async: false,
dataType: 'json',
success: function(data){
drawStatus();
$('.statustext').text('Status: ' + data);
},
error: function() {
console.error("fehler")
}
});

读取TCP.php:

<?php
$str = "oi";
$fp = fsockopen("localhost", 1234, $errno, $errstr, 30);
if (!$fp) {
echo "Fehler!";
} else {
fwrite($fp, "r");
$str = fgets ($fp, 1024);
fclose($fp);
}
echo json_encode($str);
?>

我遇到的问题是,使用此脚本读取 TCP 服务器大约需要 45 秒。

我不是 PHP 专家,这可能是一个明显的错误,但我想不通。

为什么这么慢?

最佳答案

我有一个模拟的 TCP 客户端在我的树莓派上运行。区别在于我使用的是 fread($fp, 20); 而不是 fgets ($fp, 1024);

那么试试这个:

<?php
$str = "oi";
$fp = fsockopen("localhost", 1234, $errno, $errstr, 30);
if (!$fp) {
echo "Fehler!";
} else {
fwrite($fp, "r");
$str = fread($fp, 20);
echo json_encode($str);
fclose($fp);
}
?>

关于javascript - PHP TCP连接时间延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45345702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com