2013-04-10 3 views
0

Я пытаюсь понять класс сокета и я использую следующий пример для реализации Sample SERVERКак позвонить по telnet?

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 

Но теперь вопрос, как я могу телнет, например, адрес Localhost: 8080 с помощью Lua ?

EDIT: Я забыл что-то сказать, я даже не могу telnet на cmd. Когда я набираю команду:

Telnet IP порт

он всегда говорит «соединение потеряно» после того, как я отправить сообщение. Что я делаю не так?

ответ

1

Выполнено!

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() 
2

Во-первых, следуя инструкциям из here, чтобы включить Telnet в Windows 7:

  1. Перейти Панель управления
  2. Найти Turn Windows features on or off под Programs (в зависимости от расположения)
  3. Найти Telnet client и включить его.

Как только вы это сделали, он должен работать должным образом.

+0

Я сделал это, чтобы. Фактически, когда я набираю команду telnet, она соединяется, но когда я отправляю сообщение (например, «привет»), мое соединение теряется, и моя программа lua не может получить сообщение. Я не знаю, почему ... – Crasher

+0

Telnet требует как клиента, так и сервера. – Zyerah

+0

Мой клиент и сервер активны, но я все равно получаю то же сообщение, не знаю, почему ... – Crasher