Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'socket'
- require 'trollop'
- def server(host, port)
- server = TCPServer.new(host, port)
- loop do
- Thread.start(server.accept) do |session|
- num = session.gets().to_i()
- t = 2
- res = []
- while t <= Math.sqrt(num)
- while num % t == 0
- res += [t]
- num /= t
- end
- t += 1
- end
- if num > 1 then res += [num] end
- session.puts(res.inspect)
- end
- end
- end
- def client(host, port)
- num = gets().to_i()
- sock = TCPSocket::new(host, port)
- sock.puts(num)
- puts "Result: %s" % sock.gets()
- end
- p = Trollop::Parser.new do
- opt :server, "Run in server mode"
- opt :port, "Port", :default => 8562
- opt :host, "Host", :type => :string
- end
- opts = Trollop::with_standard_exception_handling p do
- o = p.parse ARGV
- raise Trollop::HelpNeeded if !o[:server] && o[:host] == nil
- o
- end
- if opts[:server] then server(opts[:host] ? opts[:host] : "0.0.0.0", opts[:port])
- else client(opts[:host], opts[:port]) end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement