File tree 1 file changed +14
-9
lines changed
1 file changed +14
-9
lines changed Original file line number Diff line number Diff line change @@ -9,26 +9,31 @@ object PortManager extends ExternalModule {
9
9
var portsAllocated = Set .empty[Int ]
10
10
var portsByName : Map [String , Set [Int ]] = Map .empty[String , Set [Int ]]
11
11
12
+ val startingPort = 11000
13
+ val endingPort = 14000
14
+
12
15
def getPorts (tartgetNumberOfPorts : Int ): Option [Set [Int ]] = {
13
16
var i = 0
14
17
var ports = Set .empty[Int ]
15
18
16
19
this .synchronized {
17
- for (z <- 1 to 100 ) {
20
+ for (port <- startingPort to endingPort ) {
18
21
19
22
if (i >= tartgetNumberOfPorts) {
20
23
return Some (ports)
21
24
}
22
- val socket = new ServerSocket ( 0 )
23
- try {
24
- val port = socket.getLocalPort
25
- if ( ! ports.contains(port) && ! portsAllocated.contains (port)) {
26
- ports = ports + port
27
- i += 1
25
+ var portGood = false
26
+ if ( ! ports.contains(port) && ! portsAllocated.contains(port)) {
27
+ try {
28
+ val socket = new ServerSocket (port)
29
+ portGood = true
30
+ socket.close()
28
31
}
29
32
30
- } finally {
31
- socket.close()
33
+ if (portGood){
34
+ i = i+ 1
35
+ ports = ports + port
36
+ }
32
37
}
33
38
}
34
39
portsAllocated = ports ++ portsAllocated
You can’t perform that action at this time.
0 commit comments