• API
• FAQ
• Tools
• Archive
SHARE
TWEET

# BOS4_Lab

saleks28 Dec 8th, 2019 86 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. require 'prime'
2. require 'socket'
3.
4. def FindPrime(a, b)
5.     primes = []
6.     if a > b
7.          a,b = b,a
8.     end
9.     for i in a..b do
10.         if Prime.prime?(i.to_i)
11.             primes << i
12.         end
13.     end
14.     return primes
15. end
16.
17. def StartMaster(a, b)
18.     puts "Start master"
19.     a, b = a.to_i, b.to_i
20.     c = (a + b) / 2
21.     slaveThread = Thread.new {StartServer(c + 1, b)}
22.     primes1 = FindPrime(a, c)
24.     puts "Found primes:", primes1 + slaveThread.value
25. end
26.
27. def StartServer(c, b)
28.     puts "Started server"
29.     server = TCPServer.new 9000
30.     p server
31.     connection = server.accept
32.     connection.puts (c.to_s + " " + b.to_s)
33.     result =  connection.gets
34.     connection.close
35.     return result.split(" ").map{|s| s.to_i}
36. end
37.
38. def StartSlave()
39.     puts "Slave's alive"
40.     sock = TCPSocket.new '192.168.43.40', 9000
41.     range = sock.gets.split
42.     primes = FindPrime(range[0].to_i, range[1].to_i)
43.     sock.puts(primes.join(" "))
44.     sock.close
45. end
46.
47.
48. #main
49. if ARGV[0] == "MASTER"
50.     StartMaster(ARGV[1], ARGV[2])
51. elsif ARGV[0] == "SLAVE"
52.     StartSlave()
53. end
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy.
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!

Top