Я делаю сервер сокетов TCP (ruby).Поток создается для каждого подключенного клиента.В какой-то момент я пытаюсь отправить данные всем подключенным клиентам.Поток прерывается при попытке исключения (ruby 1.8.7)
require 'socket'
# I test it home right now
server = TCPServer.new('localhost', 12345);
while(session = server.accept)
#Here is the thread being created
Thread.new(session) do |s|
while(msg = s.gets)
#Here is the part that causes the error
Thread.list.each { |aThread|
if aThread != Thread.current
#So what I want it to do is to echo the message from one client to all others
#But for some reason it doesn't, and aborts on the following string
aThread.print "#{msg}\0"
end
}
end
end
Thread.abort_on_exception = true
end
Что я делаю неправильно?