2018-09-11 12:12:51 +02:00
|
|
|
package de.mrbesen.youtubecrawler;
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.PrintWriter;
|
|
|
|
import java.net.ServerSocket;
|
|
|
|
import java.net.Socket;
|
|
|
|
import java.net.SocketTimeoutException;
|
|
|
|
|
|
|
|
import org.apache.log4j.Logger;
|
|
|
|
|
|
|
|
public class Server implements Runnable {
|
|
|
|
|
|
|
|
private ServerSocket ssoc;
|
|
|
|
private Thread t;
|
|
|
|
private boolean run = false;
|
|
|
|
private Logger log = Logger.getLogger(this.getClass().getName());
|
|
|
|
private DB db;
|
|
|
|
|
|
|
|
public Server(DB d) {
|
|
|
|
db = d;
|
|
|
|
}
|
2019-03-26 15:26:10 +01:00
|
|
|
|
2018-09-11 12:12:51 +02:00
|
|
|
void start() {
|
|
|
|
run = true;
|
|
|
|
t = new Thread(this, "Server");
|
|
|
|
t.start();
|
|
|
|
}
|
|
|
|
|
|
|
|
void stop() {
|
|
|
|
run = false;
|
|
|
|
t.interrupt();
|
|
|
|
}
|
|
|
|
|
|
|
|
public void run() {
|
|
|
|
try {
|
|
|
|
final int port = 2419;
|
2019-03-26 15:26:10 +01:00
|
|
|
ssoc = new ServerSocket(port, -1);
|
2018-09-25 23:56:20 +02:00
|
|
|
//ssoc.bind(new InetSocketAddress(, port));
|
2018-09-11 12:12:51 +02:00
|
|
|
ssoc.setSoTimeout(5);
|
|
|
|
log.info("opened Server at port " + port);
|
|
|
|
while(run) {
|
|
|
|
try {
|
|
|
|
Socket client = ssoc.accept();
|
2019-03-26 15:26:10 +01:00
|
|
|
//if(client.getInetAddress().isLoopbackAddress()) {
|
|
|
|
PrintWriter out = new PrintWriter(client.getOutputStream());
|
|
|
|
out.println(db.getRandom());
|
|
|
|
out.flush();
|
|
|
|
out.close();
|
|
|
|
/*} else {
|
2018-09-11 12:12:51 +02:00
|
|
|
log.info("client connected: " + client.getInetAddress().toString());
|
2019-03-26 15:26:10 +01:00
|
|
|
}*/
|
2018-09-11 12:12:51 +02:00
|
|
|
client.close();
|
|
|
|
} catch(SocketTimeoutException ignored) {}
|
|
|
|
}
|
|
|
|
ssoc.close();
|
|
|
|
} catch(IOException e) {
|
|
|
|
e.printStackTrace();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|