PHP:socket\u read仅返回部分响应(telnet)
我的路由器有一个API,你可以通过Telnet进行连接,还可以控制一个信号杆。 我正在使用PHP连接到路由器。 我可以执行命令,但当我试图使用PHP:socket\u read仅返回部分响应(telnet),php,sockets,telnet,Php,Sockets,Telnet,我的路由器有一个API,你可以通过Telnet进行连接,还可以控制一个信号杆。 我正在使用PHP连接到路由器。 我可以执行命令,但当我试图使用socket\u read读取响应时,我只得到了部分响应 这是使用Windows的telnet功能连接到路由器时的外观: . 对命令ts alias的响应有几行长 当我试图通过PHP脚本获得响应时,我只得到第一行,ALIAS=''Hallway' 我用来听的代码如下所示: function reply($insocket) { if (false
socket\u read
读取响应时,我只得到了部分响应
这是使用Windows的telnet功能连接到路由器时的外观:
.
对命令ts alias
的响应有几行长
当我试图通过PHP脚本获得响应时,我只得到第一行,ALIAS=''Hallway'
我用来听的代码如下所示:
function reply($insocket) {
if (false !== ($bytes = socket_read($insocket, 2048, PHP_BINARY_READ))) {
return " Reply: <code>$bytes</code> \n<br>";
} else {
return "socket_read() failed; reason: " . socket_strerror(socket_last_error($insocket)) . "\n";
}
/*
while ($out = socket_read($insocket, 2048)) {
return $out;
}
*/
}
所有代码:可能超时了,请在脚本顶部尝试以下内容:
ini设置(“默认套接字超时”,300) 听起来您希望在一个socket_read()调用中获得整个消息。使用TCP/IP,流量可能会以不可预测的方式中断,您可能需要执行几个socket_read()调用来获取整个消息。