2016-04-11 5 views
0

При подключении от терминала к удаленному устройству я получаю:PHP Telnet соединение сообщение

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); 

Почему я не получаю текст regulat при подключении с php?

+0

[Telnet ] (https://en.wikipedia.org/wiki/Telnet) не является текстовым протоколом связи, он имеет специальные последовательности команд (называемые согласованиями), которые передаются как непечатаемые байты. Если вы хотите внедрить telnet-совместимый клиент, вам необходимо обработать эти последовательности команд. Прочтите RFC (спецификация). –

ответ

0

Это потому, что вывод, который вы получаете выше, не с сервера, а из telnet verbose. Так что технически он не играет никакой роли в стеке связи сокета, а простое сообщение для пользователей о том, как использовать telnet. С другой стороны, что вы сделали в РНР гнездо програмирование, так что вы будете видеть только то, что приходит после сообщения телнет приветствия

Насколько эти символы в начале идут, посмотрите на RFC

Смежные вопросы