I'm trying to use TCPServer to create both client and server and be able to run server side program. server code:
require 'socket'
STDOUT.sync = true
server = TCPServer.new 8081
loop do
Thread.start(server.accept) do | client|
client.puts(%x[ my_external_program ] )
client.close
end
end
client:
require 'socket'
s = TCPSocket.open(my_server, 8081)
while line = s.gets
puts line.chop
end
s.close
Depending on client request different programs can be executed with differnet parameters. Problem is their execution takes a lot of time and produces really long log files which I'd like to see in real time. Unfortunately this code only prints output to socket when program is finished. I know I could use hudson but really prefer something lighter. Any ideas how to accomplish this?