Skip to content

Instantly share code, notes, and snippets.

@pranavgade20
Created May 18, 2020 11:57
Show Gist options
  • Save pranavgade20/36b1b5822165cc00c1d8d8ff6cee79f5 to your computer and use it in GitHub Desktop.
Save pranavgade20/36b1b5822165cc00c1d8d8ff6cee79f5 to your computer and use it in GitHub Desktop.
import java.net.DatagramPacket;
import java.net.DatagramSocket;
public class UDPServer {
public static void main(String[] args) throws Exception {
DatagramSocket socket = new DatagramSocket(6969);
System.out.println("Started server");
while (true) {
byte[] req = new byte[128];
DatagramPacket request = new DatagramPacket(req, req.length);
socket.receive(request);
StringBuilder data = new StringBuilder();
for (int i = 0; i < req.length; i+=2) {
data.append((char) ((req[i] << 8) + req[i+1]));
}
data.append("\n").append(request.getAddress().toString()).append(":").append(request.getPort());
byte[] res = new byte[data.length()*2];
for (int i = 0; i < res.length; i+=2) {
res[i] = (byte)(data.charAt(i/2) & 0xFF00);
res[i+1] = (byte)(data.charAt(i/2) & 0x00FF);
}
DatagramPacket response = new DatagramPacket(res, res.length, request.getAddress(), request.getPort());
socket.send(response);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment