package org.drools.grid.util;
import java.io.IOException;
import java.net.DatagramSocket;
import java.net.ServerSocket;
import javax.jms.IllegalStateException;
public class IoUtils {
public static int findPort() {
for( int i = 1024; i < 65535; i++) {
if ( validPort( i ) ) {
return i;
}
}
throw new RuntimeException( "No valid port could be found" );
}
public static boolean validPort(int port) {
ServerSocket ss = null;
DatagramSocket ds = null;
try {
ss = new ServerSocket(port);
ss.setReuseAddress(true);
ds = new DatagramSocket(port);
ds.setReuseAddress(true);
return true;
} catch (IOException e) {
} finally {
if (ds != null) {
ds.close();
}
if (ss != null) {
try {
ss.close();
} catch (IOException e) {
/* should not be thrown */
}
}
}
return false;
}
}