package com.github.alexvictoor.rule;
import com.google.common.io.CharStreams;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.List;
public class Sockets {
public static final Logger logger = LoggerFactory.getLogger(Sockets.class);
public static boolean isPortAvailable(int port) {
boolean result = false;
Socket socket = null;
try {
socket = new Socket();
socket.connect(new InetSocketAddress("localhost", port), 10000);
logger.debug("Succeed to connect to localhost:" + port + ", hence port is not available");
result = false;
} catch (IOException e) {
logger.debug("Exception while testing port availability: " + port, e);
result = true;
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
logger.error("Failure while attempting to close socket on port " + port, e);
}
}
}
return result;
}
}