summaryrefslogtreecommitdiff
path: root/src/main/java/com/it_jaros/networkScanner/Scanner.java
diff options
context:
space:
mode:
authorGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-03-09 16:33:02 +0100
committerGravatar Matthias Jaros <jarlucmat@mailbox.org>2026-07-09 09:59:28 +0200
commit0787bd9163690429f5c12c64eecba79922fd0943 (patch)
tree530474a166c47427229a6d21e023d35d0ae41ecb /src/main/java/com/it_jaros/networkScanner/Scanner.java
parentb6ef91811f766f2c81ac19d4c3bf7ef002d8bccb (diff)
Changed result Queue to BitSet, which is more memory efficient
Diffstat (limited to 'src/main/java/com/it_jaros/networkScanner/Scanner.java')
-rw-r--r--src/main/java/com/it_jaros/networkScanner/Scanner.java7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/main/java/com/it_jaros/networkScanner/Scanner.java b/src/main/java/com/it_jaros/networkScanner/Scanner.java
index f5205d5..86e343d 100644
--- a/src/main/java/com/it_jaros/networkScanner/Scanner.java
+++ b/src/main/java/com/it_jaros/networkScanner/Scanner.java
@@ -6,9 +6,8 @@ import java.net.Socket;
import java.net.SocketException;
import java.net.SocketTimeoutException;
import java.util.ArrayList;
+import java.util.BitSet;
import java.util.List;
-import java.util.Queue;
-import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -63,7 +62,7 @@ public class Scanner {
private ScanResult scanTarget(String target, String ports) {
PortRange portRange = new PortRange(ports);
AtomicLong portSlotFactory = new AtomicLong(System.nanoTime());
- Queue<Integer> openPorts = new ConcurrentLinkedQueue<>();
+ BitSet openPorts = new BitSet(PortRange.MAX_PORT);
Progress progress = new Progress(target, portRange.getTotal(), new AtomicInteger(), new AtomicInteger());
progressBar.submit(progress);
@@ -79,7 +78,7 @@ public class Scanner {
try {
int port = f.get();
if (port != -1) {
- openPorts.add(port);
+ openPorts.set(port);
progress.open().incrementAndGet();
}
} catch (InterruptedException | ExecutionException e) {