【问题标题】:PHP Telnet connection messagePHP Telnet 连接消息
【发布时间】:2016-08-01 10:52:33
【问题描述】:

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

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 不是纯文本通信协议,它具有以不可打印字节形式传输的特殊命令序列(称为协商)。如果要实现兼容 telnet 的客户端,则需要处理这些命令序列。阅读 RFC(规范)。

标签: php sockets tcp telnet


【解决方案1】:

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

之后的内容

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

【讨论】:

    猜你喜欢
    • 2015-07-04
    • 2015-09-30
    • 2010-10-28
    • 2018-12-25
    • 2015-01-28
    • 2017-07-26
    • 2011-05-30
    • 2013-05-26
    • 2012-02-15
    相关资源
    最近更新 更多