Я заметил, что это я нажимаю Ctrl + C во время ожидания ответа от сервера, и через некоторое время приходит последний ответ, приложение закрывается.Но пока я жду сокета (s.gets), Ctrl + C не действует.
Поэтому я решил проблему, запустив сетевой код в другом потоке.
require 'socket'
host = '...'
port = ...
t = Thread.new do
s = TCPSocket.open(host, port)
while line = s.gets
puts line.chop
end
s.close
end
STDIN.getc
Теперь я могу завершить сценарий, набрав любой символ.Но все же было бы неплохо узнать об альтернативном решении.