1
+ import javax .xml .crypto .Data ;
2
+ import java .io .IOException ;
3
+ import java .net .DatagramPacket ;
4
+ import java .net .DatagramSocket ;
5
+ import java .net .InetAddress ;
6
+ import java .net .SocketException ;
7
+
8
+ public class Main {
9
+
10
+ private static final int PORT = 2082 ;
11
+ private static DatagramSocket datagramSocket ;
12
+ private static DatagramPacket inPacket ,outPacket ;
13
+ private static byte [] buffer ;
14
+
15
+
16
+ public static void main (String [] args ) {
17
+
18
+ System .out .println ("Opening port. . . \n " );
19
+ try {
20
+ datagramSocket = new DatagramSocket (PORT ); //STEP 1
21
+ } catch (SocketException socketException ) {
22
+ System .out .println ("UNABLE TO OPEN PORT" );
23
+ System .out .println (socketException .getMessage ());
24
+ System .exit (1 );
25
+ }
26
+ handleClient ();
27
+ }
28
+
29
+ public static void handleClient () {
30
+ try {
31
+ String messageIn , messageOut ;
32
+ int numMessages = 0 ;
33
+ InetAddress clientAddress = null ;
34
+ int clientPort ;
35
+ do {
36
+ buffer = new byte [256 ]; //STEP 2
37
+ inPacket = new DatagramPacket (buffer , buffer .length ); //STEP 3
38
+ datagramSocket .receive (inPacket ); //STEP 4
39
+
40
+ clientAddress = inPacket .getAddress (); //STEP 5
41
+ clientPort = inPacket .getPort ();
42
+
43
+ messageIn = new String (inPacket .getData (), 0 , inPacket .getLength
44
+ ()); //STEP 6
45
+ System .out .println ("Message Received" );
46
+ numMessages ++;
47
+ messageOut = "Message " + numMessages + " : " + messageIn ;
48
+ outPacket = new DatagramPacket (messageOut .getBytes (), messageOut
49
+ .length (), clientAddress , clientPort ); //STEP 7
50
+ datagramSocket .send (outPacket ); //STEP 8
51
+ System .out .println ("MESSAGE : " + messageOut );
52
+ } while (true );
53
+
54
+ } catch (IOException ioException ) {
55
+ ioException .printStackTrace ();
56
+ }
57
+ finally {
58
+ System .out .println ("\n *CLOSING THE CONNECTION*" );
59
+ datagramSocket .close ();
60
+
61
+ }
62
+ }
63
+ }
0 commit comments