السلام عليكم
عندما ننشئ كائن ServerSocket ونمرر له ال port، سيتم إنشاء الكائن بدون مشكل إذا كان ال port غير مشغول، لكن إذا كان العكس يتم إرسال IOException.
يمكننا استغلال هذا الأمر لمعرفة ال ports المفتوحة في الجهاز
int startPort = 1, endPort = 100;
for (int i = startPort; i < endPort; i++) {
boolean open = false;
try {
ServerSocket sock = new ServerSocket(i);
sock.close();
} catch (IOException e) {
open = true;
}
System.out.println("The port "+i+" is open ... "+open);
}