আপনি যদি ব্যবহার করা বন্দরটি আপত্তি না করেন তবে সার্ভারসকেট কনস্ট্রাক্টরের কাছে 0 টির একটি বন্দর নির্দিষ্ট করুন এবং এটি যে কোনও ফ্রি পোর্টে শুনবে।
ServerSocket s = new ServerSocket(0);
System.out.println("listening on port: " + s.getLocalPort());
আপনি যদি কোনও নির্দিষ্ট বন্দরগুলির সেট ব্যবহার করতে চান, তবে সবচেয়ে সহজ উপায় সম্ভবত কোনও কাজ না হওয়া পর্যন্ত তাদের মাধ্যমে পুনরাবৃত্তি করা। এটার মতো কিছু:
public ServerSocket create(int[] ports) throws IOException {
for (int port : ports) {
try {
return new ServerSocket(port);
} catch (IOException ex) {
continue; // try next port
}
}
// if the program gets here, no port in the range was found
throw new IOException("no free port found");
}
যেমন ব্যবহার করা যেতে পারে:
try {
ServerSocket s = create(new int[] { 3843, 4584, 4843 });
System.out.println("listening on port: " + s.getLocalPort());
} catch (IOException ex) {
System.err.println("no available ports");
}