package elte.java2_utikalauz5.net; import java.io.*; import java.net.*; /** Egy összeköttetés-mentes szerveralkalmazás. Ez az alkalmazás csomagot fogad a futtató számítógép megadott sorszámú UDP portjáról, a csomag tartalmát pedig kiírja. A programparaméterek: @link.forrásfájl {@docRoot}/../data/net/src ClSeTeszt.java @link.letöltés {@docRoot}/../data/net ClSeTeszt.jar @since Java Útikalauz programozóknak */ public class ClSeTeszt { public static void hasznalati_utasitas() { System.out.println("Használat: java ClSeTeszt portsorszám"); System.exit(-1); } public static void main(String[] args) { int server_port = 0; if (args.length != 1) hasznalati_utasitas(); // sok/kevés argumentum try { server_port = Integer.parseInt(args[0]); } // szerver port-sorszáma catch (NumberFormatException e) { hasznalati_utasitas(); } try { byte[] uzenet = new byte[1500]; // helyet csinálunk az üzenetnek String szoveg; // hely a Stringgé konvertált üzenetnek (szükséges, // ugyanis Stringként akarjuk kiíratni, így // konvertálni kell majd) /* Létrehozunk egy csomagot, ahova a beérkező üzenetet tesszük */ DatagramPacket p = new DatagramPacket(uzenet, uzenet.length); /* Létrehozzuk a szerver kommunikációs végpontot */ /* a megadott UDP porton */ DatagramSocket s = new DatagramSocket(server_port); s.receive(p); // várunk egy csomagot, és a tartalmát beolvassuk p-be // a kapott üzenet tartalmát Stringgé konvertáljuk szoveg = new String(uzenet, 0, p.getLength()); System.out.println("Fogadtam csomagot a " + // és kiírjuk p.getAddress().getHostName() + " számítógéptől, a " + p.getPort() + " sorszámú UDP portról." + " Az üzenet tartalma: " + szoveg); s.close(); // kommunikációs végpont lezárása } catch (UnknownHostException e) { System.err.println("Ismeretlen host!"); } catch (IOException e) { System.err.println("Nem sikerült a küldés!"); } } }