feat: udp
All checks were successful
Linux arm64 / Build (push) Successful in 37s

This commit is contained in:
2025-02-26 16:59:15 +01:00
parent 11a246adfd
commit 7b90a81365
7 changed files with 130 additions and 137 deletions

View File

@@ -0,0 +1,50 @@
package network.server;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.DatagramPacket;
import java.net.InetSocketAddress;
import network.protocol.Packet;
public class ServerReadThread extends Thread {
private final Server server;
public ServerReadThread(Server server) {
this.server = server;
}
public void cancel() {
this.server.serverSocket.close();
interrupt();
}
@Override
public void run() {
try {
while (!interrupted()) {
byte[] buffer = new byte[1024];
DatagramPacket dataPacket = new DatagramPacket(buffer, buffer.length);
this.server.serverSocket.receive(dataPacket);
InetSocketAddress address = new InetSocketAddress(dataPacket.getAddress(), dataPacket.getPort());
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(dataPacket.getData()));
Packet packet = (Packet) ois.readObject();
if (!this.server.connexions.containsKey(dataPacket.getSocketAddress())) {
this.server.connexions.put(address, new ServerConnexion(address, server));
}
this.server.connexions.get(address).visit(packet);
}
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}