У меня есть очень простая программа Ruby, которая действует как «эхо-сервер». Когда вы подключаетесь к нему через telnet, любой текст, который вы набираете, возвращается обратно. Эта часть работает. Если я добавлю оператор «putc», чтобы также печатать каждый полученный символ на консоли, на которой запущена программа, печатается только самый первый отображаемый символ. После этого он продолжает возвращать сообщения клиенту telnet, но на консоли ничего не печатается.
Ниже приведена небольшая урезанная программа, которая демонстрирует проблему.
Я очень новичок в Ruby и, вероятно, совершил типичную ошибку новичка. Что я сделал не так?
require 'socket'
puts "Simple Echo Server V1.0"
server = TCPServer.new('127.0.0.1', '2150')
cbuf = ""
while socket = server.accept
cbuf = socket.readchar
socket.putc cbuf
putc cbuf
end