static Module LoadModule( DatagramSocket datagramsocket, InetAddress inetaddress, int i, String s, boolean flag) { try { Module module = new Module(); module.Name = s; int j = Challenge(datagramsocket, inetaddress, i); System.out.print("Sending the get request, file '" + s); if (flag) System.out.print(" [beta] "); byte abyte0[] = Cmd_Get(s, j, flag); datagramsocket.send(new DatagramPacket(abyte0, abyte0.length, inetaddress, i)); try { Thread.sleep(50L); } catch (Exception exception2) { } System.out.print("' ..."); abyte0 = new byte[256]; DatagramPacket datagrampacket = new DatagramPacket(abyte0, abyte0.length); datagramsocket.receive(datagrampacket); System.out.println(" ok "); ReqFile reqfile = new ReqFile(abyte0); if (!((Req) (reqfile)).legal) { System.out.println("Can't download module " + s); return null; } module.Size = reqfile.Size; module.Header = reqfile.Header; module.Data = new byte[module.Size]; Module module1 = null; try { module1 = new Module(s); } catch (Exception exception3) { module1 = null; } if (module1 != null && module1.compareHeader(module)) { byte abyte1[] = Cmd_Abort(""); datagramsocket.send(new DatagramPacket(abyte1, abyte1.length, inetaddress, i)); System.out.println(s + " is already the newest version."); return null; } System.out.print("downloading data"); int k = 0; do { byte abyte2[] = Cmd_Next(k); datagramsocket.send(new DatagramPacket(abyte2, abyte2.length, inetaddress, i)); try { Thread.sleep(50L); } catch (Exception exception4) { } abyte2 = new byte[16534]; DatagramPacket datagrampacket1 = new DatagramPacket(abyte2, abyte2.length); try { datagramsocket.receive(datagrampacket1); } catch (InterruptedIOException e) { continue; } ReqBlock reqblock = new ReqBlock(abyte2); if (!((Req) (reqblock)).legal) { if (!"FINISH".equals(((Req) (reqblock)).Cmd)) throw new Exception("Protocol violation"); break; } System.arraycopy(reqblock.Data, 0, module.Data, k, reqblock.Size); k += reqblock.Size; System.out.print("."); } while (true); if (k != module.Size) { throw new Exception("File size mismatch"); } else { System.out.println("done"); Module.decode(module.Data, j); return module; } } catch (Exception exception) { exception.printStackTrace(); } if (datagramsocket != null) try { datagramsocket.close(); } catch (Exception exception1) { } System.out.println("Can't download module " + s); return null; }