Skip to content

Instantly share code, notes, and snippets.

@dt
Created August 4, 2013 16:53
Show Gist options
  • Save dt/6150982 to your computer and use it in GitHub Desktop.
Save dt/6150982 to your computer and use it in GitHub Desktop.
UDP Echo Server
import java.io.*;
import java.net.*;
class UDPServer {
public static void main(String args[]) throws Exception {
if (args.length < 1) {
System.out.println("usage: java UDPServer <port>");
} else {
int listen = Integer.parseInt(args[0]);
try {
DatagramSocket serverSocket = new DatagramSocket(listen);
byte[] receiveData = new byte[1024];
byte[] sendData = new byte[1024];
System.out.println("listening on port " + listen);
while(true) {
receiveData = new byte[1024];
DatagramPacket receivePacket =
new DatagramPacket(receiveData, receiveData.length);
System.out.println ("Waiting for datagram packet");
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData());
InetAddress IPAddress = receivePacket.getAddress();
int port = receivePacket.getPort();
System.out.println ("From: " + IPAddress + ":" + port);
System.out.println ("Message: " + sentence);
String capitalizedSentence = sentence.toUpperCase();
sendData = capitalizedSentence.getBytes();
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port);
serverSocket.send(sendPacket);
}
} catch (SocketException ex) {
System.out.println("UDP Port " + listen + " is occupied.");
System.exit(1);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment