Created
May 18, 2020 11:57
-
-
Save pranavgade20/36b1b5822165cc00c1d8d8ff6cee79f5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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