Schreib dir doch schnell einen Java Masterserver mit MySQL Backend, wobei ich sogar UDP präferiere. Dann am besten noch nen ThreadPool, in etwa so:
private int corePoolSize = 150;
private int maxPoolSize = 8192;
private int keepAliveTime = 10;
final ArrayBlockingQueue<Runnable> workQueue = new ArrayBlockingQueue<Runnable>(8192);
public void StartServer() {
try {
getInstance();
DatagramSocket ServerSocket = new DatagramSocket(9876);
DatagramPacket Packet = null;
ThreadPoolExecutor ThreadPool = new ThreadPoolExecutor(corePoolSize, maxPoolSize, keepAliveTime, TimeUnit.SECONDS, workQueue);
while(true) {
for(int i = 0; i <= 149; i++) {
Packet = new DatagramPacket(Data, Data.length);
ServerSocket.receive(Packet);
checkInstance(i);
ThreadPool.execute(new Worker(Connection[i], Packet));
}
}
} catch (IOException e) {
System.err.println(e);
}
}
Alles anzeigen
MySQL Backend dann über JDBC
Den Worker dann dementsprechend:
public class Worker implements Runnable {
private DatagramPacket Packet;
private Connection Connection;
public Worker(Connection Connection, DatagramPacket Packet) {
this.Connection = Connection;
this.Packet = Packet;
}
public void run() {
}
}
Alles anzeigen