Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.06 KB | None | 0 0
  1. public void run ()
  2.     {
  3.         // código a executar pela thread
  4.         byte buffer[] = new byte[MAX_TAMANHO_MSG];//por o tamanho de mensagem no configs
  5.  
  6.         while(true)
  7.         {
  8.             try
  9.             {
  10.                 System.out.println("UDPServer - inicializado");
  11.                 DatagramSocket sock = new DatagramSocket(Configs.UPDPort);
  12.                 DatagramPacket pack = new DatagramPacket(buffer, buffer.length);
  13.  
  14.                 while(true)
  15.                 {
  16.                     String textoRecebido = null;
  17.                     //System.toServer.println("UDPServer - A espera de menssagem UDPserver");
  18.                     sock.receive(pack);
  19.                     System.out.println("UDPServer - Menssagem recebida -> "+new String(pack.getData(), 0, pack.getLength()));
  20.                     textoRecebido = new String(pack.getData(), 0, pack.getLength());
  21.                     //System.toServer.println("textoRecebido -> "+ textoRecebido);
  22.  
  23.                     InetAddress addr = pack.getAddress();
  24.                     String IPRecebido = addr.getHostAddress();
  25.                     String[] result = textoRecebido.split(";");
  26.                     String Part0 = result[0]; //Tipo + Nome
  27.                     String Part3 = result[1]; //Estado
  28.                     String[] result1 = Part0.split(" ");
  29.                     String Part1 = result1[0]; //Tipo
  30.                     String Part2 = null; //Nome
  31.                     for(int i=1; i<result1.length; i++)
  32.                     {
  33.                         if(i==1)
  34.                         {
  35.                             Part2 = result1[i];
  36.                         }
  37.                         else
  38.                         {
  39.                             Part2 = Part2+" "+result1[i];
  40.                         }
  41.                     }
  42.  
  43.                     if( Part1.equals("USER_INFO_REQUEST"))
  44.                     {
  45.                         users.updateEstado(IPRecebido, Part2, Part3);
  46.  
  47.                         try
  48.                         {
  49.                             String textoEnviar = null;
  50.  
  51.                             textoEnviar = ("USER_INFO_REQUEST_REPLY "+users.ClientNickname+";"+users.ClientState);
  52.                             buffer = textoEnviar.getBytes();
  53.  
  54.                             DatagramSocket sock2 = new DatagramSocket(2012);
  55.                             DatagramPacket pack2 = new DatagramPacket(buffer, buffer.length, new InetSocketAddress(IPRecebido, Configs.UPDPort));//UPDPort no 2010
  56.                             sock2.send(pack2);
  57.                             sock2.close();
  58.                         }
  59.                         catch (IOException e)
  60.                         {
  61.                             e.printStackTrace();
  62.                             System.out.println("ServerUDP - USER_INFO_REQUEST - IOException ao comunicar");
  63.                         }
  64.                     users.UpdateUserList();
  65.                     }
  66.  
  67.                     if( Part1.equals("USER_INFO_REQUEST_REPLY"))
  68.                     {
  69.                         users.updateEstado(IPRecebido, Part2, Part3);
  70.  
  71.                         users.UpdateUserList();
  72.                     }
  73.  
  74.                     if( !Part1.equals("USER_INFO_REQUEST_REPLY") && !Part1.equals("USER_INFO_REQUEST"))
  75.                     //if( Part1.equals("POKE"))
  76.                     {
  77.                         if(users.Connections==1)
  78.                         {
  79.                             users.chat.jTextArea2.append("## POKE ##"+textoRecebido + "\n");
  80.                             System.out.println("ServerUDP - POKE -> "+textoRecebido);
  81.                         }
  82.                         else
  83.                         {
  84.                             System.out.println("ServerUDP - POKE Rejeitado -> "+textoRecebido);
  85.                         }
  86.                     }
  87.                 }
  88.             }
  89.             catch (IOException ex)
  90.             {
  91.                 Logger.getLogger(UDPserver.class.getName()).log(Level.SEVERE, null, ex);
  92.                 System.out.println("ServerUDP - Erro menssagem UDP");
  93.             }
  94.         }
  95.  
  96.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement