1
0
2020-09-21 16:35:42 +02:00

59 lines
1.5 KiB
Java

package cs451;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class SignalParser {
private static final String SIGNAL_KEY = "--signal";
private static final int SIGNAL_ARGS_NUM = 2;
private static final String COLON_REGEX = ":";
private static final String IP_START_REGEX = "/";
private static String ip;
private static int port;
public boolean populate(String key, String value) {
if (!key.equals(SIGNAL_KEY)) {
return false;
}
String[] signal = value.split(COLON_REGEX);
if (signal.length != SIGNAL_ARGS_NUM) {
return false;
}
try {
String ipTest = InetAddress.getByName(signal[0]).toString();
if (ipTest.startsWith(IP_START_REGEX)) {
ip = ipTest.substring(1);
} else {
ip = InetAddress.getByName(ipTest.split(IP_START_REGEX)[0]).getHostAddress();
}
port = Integer.parseInt(signal[1]);
if (port <= 0) {
System.err.println("Signal port must be a positive number!");
return false;
}
} catch (UnknownHostException e) {
e.printStackTrace();
}
return true;
}
public String getIp() {
return ip;
}
public int getPort() {
return port;
}
}