如何通过 Telnet 连接到一个地址?

我正在尝试理解 socket 类,并使用以下示例实现服务器示例。

local server = assert(socket.bind("*", 0))

-- find out which port the OS chose for us
local ip, port = server:getsockname()

-- print a message informing what's up
print("Please telnet to localhost on IP [" ..ip.. "] and port [" .. port .. "]")
print("After connecting, you have 10s to enter a line to be echoed")

-- loop forever waiting for clients
while true do
-- wait for a connection from any client
local client = server:accept()

-- make sure we don't block waiting for this client's line
client:settimeout(10)

-- receive the line
local line, err = client:receive()

-- if there was no error, send it back to the client
if not err then
    client:send(line .. "\n")
end

-- done with client, close the object
client:close()
end

但现在的问题是,我怎么通过 lua telnet 到例如 localhost:8080 这样的地址?

编辑: 我忘了说一些事情,我甚至不能在 cmd 上进行 telnet。当我输入以下命令时:

telnet ip port

我发送消息后它总是说“连接丢失”。我做错了什么?

点赞
用户88888888
用户88888888

首先,按照 这里 的说明来在 Windows 7 中启用 Telnet:

  1. 进入控制面板
  2. 在“程序”下找到“打开或关闭 Windows 功能”(根据布局而定)
  3. 找到“Telnet 客户端”并启用它。

一旦完成上述步骤,Telnet 就会按预期工作。

2013-04-10 05:15:10
用户1112325
用户1112325
local socket = require("socket")

local server = socket.connect(ip, port)

local ok, err = server:send("RETURN\n")
if (err ~= nil) then
    print (err)
else
    while true do
        s, status, partial = server:receive(1024)
        print(s or partial)

        if (status == "closed") then
            break
        end
    end
end

server:close()
-- 导入 socket 模块
local socket = require("socket")
-- 建立与指定 IP 地址和端口号的服务器连接
local server = socket.connect(ip, port)

-- 向服务器发送 "RETURN" 信息
local ok, err = server:send("RETURN\n")
if (err ~= nil) then
    print (err)
else
    -- 如果连接正常则循环接收服务器响应
    while true do
        s, status, partial = server:receive(1024)
        -- 接收到消息时打印出来
        print(s or partial)

        -- 判断连接是否断开
        if (status == "closed") then
            break
        end
    end
end

-- 关闭服务器连接
server:close()
2013-04-14 21:31:53