techno-

Servidor UDP

Feb 16th, 2023
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.18 KB | None | 0 0
  1. package es.udc.redes.tutorial.udp.server;
  2.  
  3. import java.net.*;
  4.  
  5. /**
  6.  * Implements a UDP echo server.
  7.  */
  8. public class UdpServer {
  9.  
  10.     public static void main(String argv[]) {
  11.         if (argv.length != 1) {
  12.             System.err.println("Format: es.udc.redes.tutorial.udp.server.UdpServer <port_number>");
  13.             System.exit(-1);
  14.         }
  15.         int serverPort = Integer.parseInt(argv[0]);
  16.         DatagramSocket sDatagram = null;
  17.         try {
  18.             // Create a server socket
  19.             sDatagram = new DatagramSocket(serverPort);
  20.             // Set maximum timeout to 300 secs
  21.             sDatagram.setSoTimeout(300000);
  22.             while (true) {
  23.                 // Prepare datagram for reception
  24.                 byte array[] = new byte[1024];
  25.                 DatagramPacket dgramRec = new DatagramPacket(array, array.length);
  26.                 // Receive the message
  27.                 sDatagram.receive(dgramRec);
  28.                 System.out.println("SERVER: Received "
  29.                         + new String(dgramRec.getData(), 0, dgramRec.getLength())
  30.                         + " from " + dgramRec.getAddress().toString() + ":"
  31.                         + dgramRec.getPort());
  32.                 // Prepare datagram to send response
  33.  
  34.                 DatagramPacket dgramSent = new DatagramPacket(dgramRec.getData(),
  35.                         dgramRec.getLength(), dgramRec.getAddress(), dgramRec.getPort());
  36.                 // Send response
  37.                 sDatagram.send(dgramSent);
  38.                 System.out.println("SERVER: Sending "
  39.                         + new String(dgramSent.getData()) + " to "
  40.                         + dgramSent.getAddress().toString() + ":"
  41.                         + dgramSent.getPort()
  42.                 );
  43.             }
  44.          
  45.         // Uncomment next catch clause after implementing the logic
  46.         } catch (SocketTimeoutException e) {
  47.             System.err.println("No requests received in 300 secs ");
  48.         } catch (Exception e) {
  49.             System.err.println("Error: " + e.getMessage());
  50.             e.printStackTrace();
  51.         } finally {
  52.         // Close the socket
  53.             sDatagram.close();
  54.         }
  55.     }
  56. }
  57.  
Add Comment
Please, Sign In to add comment