Size: a a a

2019 October 24

YT

Yuri Tarasenko in pro.lua
Raw-Telnet работает, как обыкновенный TCP/IP по 23 порту, да. Полноценный Telnet просто так не работает.

Взял я это с того, что попробовал уже скрипт обыкновенного TCP-клиента. При подключении в ответ получил строку из символов в юникоде. Сервер в такой ситуации не отвечал ни на какие команды. Проверил через PuTTY, в режиме Telnet-соединения всё прекрасно, сервер запрашивает логин и реагирует на команды. В режиме Raw - та же строка из символов и ноль реакции.

На другом языке кода нет, к сожалению. В принципе в первые сталкиваюсь с такой жесткой несовместимостью оборудования.
источник

YT

Yuri Tarasenko in pro.lua
В каком виде вам лучше прислать?
источник

IN

Ivan Nazarov in pro.lua
Так тут же бот для юзеров, проведших в чате меньше суток, удаляет ссылки
источник

Ж

Жечка in pro.lua
так можно вложение заслать
источник

I

Igor725 in pro.lua
А чем виндовый telnet не устроил? Ну или тот же PuTTY? Скриптовых telnet-клиентов на Lua нет, потому что необходимости в них нету. Возможно я вопрос не правильно понял.
источник

YT

Yuri Tarasenko in pro.lua
Igor725
А чем виндовый telnet не устроил? Ну или тот же PuTTY? Скриптовых telnet-клиентов на Lua нет, потому что необходимости в них нету. Возможно я вопрос не правильно понял.
Потому что этот скрипт должен быть на стороннем контроллере (Logic Machine, если это что-то даст), который отвечает за управление всем оборудованием в помещении
источник

D

DaySandBox in pro.lua
Message from Yuri Tarasenko deleted. Reason: new user and external link (?)
источник

CP

Companion Philipp in pro.lua
Я бы написал простенький клиент-сервер
источник

CP

Companion Philipp in pro.lua
На сокетах
источник

CP

Companion Philipp in pro.lua
И не запаривался с телнетом
источник

YT

Yuri Tarasenko in pro.lua
источник

YT

Yuri Tarasenko in pro.lua
Companion Philipp
И не запаривался с телнетом
Единственная проблема в том, что оборудование, на котором вертится сервер, работает либо с протокольным Telnet, либо с HTTP, но там тоже куча своих нюансов
источник

YT

Yuri Tarasenko in pro.lua
Это клиент, да. К текущей версии сейчас доступа нет, всё осталось на контроллере. Но разница не велика, в текущей при коннекте просто стоит client:send('login\rpass') при коннекте
источник

S

Snusmumriken in pro.lua
Есть более простые способы наклепать клиент телнета.
У сокета есть специальная команда на receive — "*l". Можно с нулевым таймаутом.
источник

S

Snusmumriken in pro.lua
Типа

local client = assert( socket.connect("host", 23) )
client:settimeout(0)

while true do
 local command, status, partial = client:receive("*l")
 if command == "PWON" then
   ...
 elseif command == "PWSTANDBY" then
   ...
 end

 if status == "blabla" then bla-bla end
end

Принимать по одному символу не нужно и даже слегка вредно.
источник

YT

Yuri Tarasenko in pro.lua
Да, этот момент я понимаю. В данном случае я взял первый пример, который попался под руку, так как с Lua я не знаком от слова совсем. Но это, к сожалению, проблемы не решает, пробовал и так, и так: всё равно первой строкой прилетает "▒▒▒▒ ▒▒#▒▒'", а дальше попросту ничего, хотя коннект поддерживается и сервером не закрывается
источник

S

Snusmumriken in pro.lua
А точно ли прилетают команды, во-первых.
Во-вторых, декодируй вот это вот [▒▒▒▒ ▒▒#▒▒'], посмотри что конкретно там приходит. Это можно сделать
print( data:gsub('.', function(c) return c:byte() .. ' ' end) )
Надо же видеть примерные байтики которые возвращаются, телнет в целом может в такие опции.
источник

S

Snusmumriken in pro.lua
Заодно проверь netcat'ом, точно ли всё так передаётся, netcat даёт чистое неискажённое tcp-соединение, в нём легко тестировать.
источник

S

Snusmumriken in pro.lua
Что ещё может быть: в этой последовательности [▒▒▒▒ ▒▒#▒▒'] закодировано что-то типа запроса на подтверждение опций, и пока оно не будет подтверждено, сообщения могут не идти. Даже telnet'у надо иногда чем-то отвечать.

https://ru.wikipedia.org/wiki/Telnet#Структура_команд_Telnet
источник
2019 October 26

P

P in pro.lua
источник