import java.net.*; import java.io.*; import java.nio.*; import java.nio.channels.*; public class UDPDiscardServerWithChannels { public final static int DEFAULT_PORT = 9; public final static int MAX_PACKET_SIZE = 65507; public static void main(String[] args) { int port = DEFAULT_PORT; try { port = Integer.parseInt(args[0]); } catch (Exception ex) { } try { DatagramChannel channel = DatagramChannel.open(); DatagramSocket socket = channel.socket(); SocketAddress address = new InetSocketAddress(port); socket.bind(address); ByteBuffer buffer = ByteBuffer.allocateDirect(MAX_PACKET_SIZE); while (true) { SocketAddress client = channel.receive(buffer); buffer.flip(); System.out.print(client + " says "); while (buffer.hasRemaining()) System.out.write(buffer.get()); System.out.println(); buffer.clear(); } // end while } // end try catch (IOException ex) { System.err.println(ex); } // end catch } // end main }