Advertisement
Guest User

server

a guest
Feb 11th, 2012
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.00 KB | None | 0 0
  1. require 'socket'
  2. require 'trollop'
  3. def server(host, port)
  4.   server = TCPServer.new(host, port)
  5.   loop do
  6.     Thread.start(server.accept) do |session|
  7.       num = session.gets().to_i()
  8.       t = 2
  9.       res = []
  10.       while t <= Math.sqrt(num)
  11.         while num % t == 0
  12.           res += [t]
  13.           num /= t
  14.         end
  15.         t += 1
  16.       end
  17.       if num > 1 then res += [num] end
  18.       session.puts(res.inspect)
  19.     end
  20.   end
  21. end
  22. def client(host, port)
  23.   num = gets().to_i()
  24.   sock = TCPSocket::new(host, port)
  25.   sock.puts(num)
  26.   puts "Result: %s" % sock.gets()
  27. end
  28. p = Trollop::Parser.new do
  29.   opt :server, "Run in server mode"
  30.   opt :port, "Port", :default => 8562
  31.   opt :host, "Host", :type => :string
  32. end
  33. opts = Trollop::with_standard_exception_handling p do
  34.   o = p.parse ARGV
  35.   raise Trollop::HelpNeeded if !o[:server] && o[:host] == nil
  36.   o
  37. end
  38. if opts[:server] then server(opts[:host] ? opts[:host] : "0.0.0.0", opts[:port])
  39. else client(opts[:host], opts[:port]) end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement