package ch.epfl.lca.sc250; import java.net.*; import java.io.*; import java.nio.*; import ch.epfl.lca.sc250.gui.*; public class UDPServer { private DatagramSocket sock; private CnFrameUDP gui; public static void main ( String[] args ) { UDPServer udpS = new UDPServer(); udpS.loop(); } UDPServer ( ) { gui = new CnFrameUDP("UDPServer"); try { sock = new DatagramSocket(13371); } catch ( SocketException se ) { System.out.println("Couldn't create socket."); } } public void loop ( ) { int buffsize = 4096; byte[] buff = new byte[buffsize]; byte[] head = new byte[3]; byte[] nick = new byte[4]; byte[] addr = new byte[4]; byte[] load = new byte[buffsize-11]; DatagramPacket rp; String data; while ( true ) { rp = new DatagramPacket(buff, buff.length); try { sock.receive(rp); } catch ( IOException ioe ) { System.out.println("IO-Error"); } System.out.println("Recieve packet..."); ByteBuffer bb = ByteBuffer.wrap(rp.getData()); bb.get(head); bb.get(nick); bb.get(addr); bb.get(load); //System.out.println(rp.getAddress().toString() + ":" + Integer.toString(rp.getPort()) + " > " + new String(load)); try { System.out.println(InetAddress.getByAddress(addr).toString() + " > " + new String(load).trim()); gui.appendBroadcastMessage(InetAddress.getByAddress(addr).toString(), InetAddress.getByAddress(nick).toString(), new String(load).trim()); } catch ( UnknownHostException uhe ) { System.out.println("Errornous packet address"); } } } }