PHP Telnet 连接消息

PHP Telnet connection message

从终端连接到远程设备时,我得到:

Trying XX.XX.XX.XX...
Connected to XX.XX.XX.XX.
Escape character is '^]'.


User Name:

但是当通过 PHP 连接并使用 socket_read 函数读取数据时

我得到:

��������


User Name:

这是我的连接和读取代码的样子:

$this->socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

$buffer = @socket_read($this->socket, $this->length);

为什么我从 php 连接时收不到规则文本?

那是因为你上面得到的输出不是来自服务器,而是来自 telnet verbose。所以从技术上讲,它与套接字通信堆栈无关,而是向用户提供有关如何使用 telnet 的简单消息。另一方面,您在 PHP 中所做的是套接字编程,因此您只会看到 telnet greetings message

之后的内容

至于开头的那些字符,看看RFC