2 Commits
Author SHA1 Message Date
tema5002 a5de781471 refactor: move source files to src/ directory 2026-09-19 12:30:33 +03:00
tema5002 d2ad6be236 Add telnet (kinda) 2026-08-08 20:16:59 +03:00
105 changed files with 60 additions and 0 deletions
View File
+60
View File
@@ -0,0 +1,60 @@
-- Despite the name it's not telnet
local component = require("component")
if not component.isAvailable("internet") then
terminal.write("telnet: this program requires an internet card to run\n")
return
end
local internet = component.internet
if not internet.isTcpEnabled() then
terminal.write("telnet: TCP disabled\n")
return
end
local arg = {...}
local host = arg[1]
local port = tonumber(arg[2])
local sock = internet.connect(host, port)
local connected = false
local err
for _ = 1, 5 do
local ok
ok, err = sock.finishConnect()
if ok then
connected = true
break
end
coroutine.yield()
end
if not connected then
print("telnet: " .. err)
return
end
print(("connected to %s:%d"):format(host, port))
while true do
local fromSocket = sock.read(math.maxinteger or math.huge)
if fromSocket == nil then
print("telnet: connection closed")
sock.close()
return
end
terminal.write(fromSocket)
terminal.flush()
local fromTerminal = terminal.read()
if fromTerminal == "" then
sock.close()
return
end
while fromTerminal ~= "" do
local nbytes, err = sock.write(fromTerminal .. "\r\n")
if err then
print("telnet: " .. err)
return
end
fromTerminal = fromTerminal:sub(nbytes + 1)
end
end
View File
View File
View File
View File
View File

Some files were not shown because too many files have changed in this diff Show More