Чтение данных по UDP (multicast)

  1. package javaapplication1;
  2.  
  3. import java.io.IOException;
  4. import static java.lang.System.out;
  5. import java.net.DatagramPacket;
  6. import java.net.InetAddress;
  7. import java.net.InetSocketAddress;
  8. import java.net.MulticastSocket;
  9. import java.net.SocketAddress;
  10. import java.net.SocketException;
  11. import java.net.UnknownHostException;
  12.  
  13. /**
  14.  * @author Naik
  15.  */
  16. public class JavaApplication1 {
  17.  
  18.     /**
  19.      * Adress:
  20.      *
  21.      * udp://@238.100.100.33:1234
  22.      */
  23.     public static void main(String[] args) {
  24.         int port = 1234;
  25.         String host = "238.100.100.33";
  26.         try {
  27.             MulticastSocket mCastSock = new MulticastSocket(port);
  28.             mCastSock.setSoTimeout(5000);
  29.             InetAddress addr = InetAddress.getByName(host);
  30.             SocketAddress sockAddr = new InetSocketAddress(addr, port);
  31.             mCastSock.joinGroup(addr);
  32.  
  33.             byte[] buf = new byte[1024];
  34.             DatagramPacket packet = new DatagramPacket(buf, buf.length);
  35.             mCastSock.receive(packet);
  36.             while (true) {
  37.                 out.println("Data: " + new String(buf, "ascii"));
  38.             }
  39.         } catch (SocketException ex) {
  40.             ex.printStackTrace();
  41.         } catch (UnknownHostException ex) {
  42.             ex.printStackTrace();
  43.         } catch (IOException ex) {
  44.             ex.printStackTrace();
  45.         }
  46.     }
  47.  
  48. }
Будет работать только в локальной сети.

Реклама

Мы в соцсетях

tw tg yt gt