001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 import java.io.IOException; 006 import java.net.DatagramPacket; 007 import java.net.InetAddress; 008 import java.net.MulticastSocket; 009 import java.net.SocketTimeoutException; 010 011 @SideOnly(Side.CLIENT) 012 public class ThreadLanServerFind extends Thread 013 { 014 private final LanServerList field_77500_a; 015 private final InetAddress field_77498_b; 016 private final MulticastSocket field_77499_c; 017 018 public ThreadLanServerFind(LanServerList par1LanServerList) throws IOException 019 { 020 super("LanServerDetector"); 021 this.field_77500_a = par1LanServerList; 022 this.setDaemon(true); 023 this.field_77499_c = new MulticastSocket(4445); 024 this.field_77498_b = InetAddress.getByName("224.0.2.60"); 025 this.field_77499_c.setSoTimeout(5000); 026 this.field_77499_c.joinGroup(this.field_77498_b); 027 } 028 029 public void run() 030 { 031 byte[] var2 = new byte[1024]; 032 033 while (!this.isInterrupted()) 034 { 035 DatagramPacket var1 = new DatagramPacket(var2, var2.length); 036 037 try 038 { 039 this.field_77499_c.receive(var1); 040 } 041 catch (SocketTimeoutException var5) 042 { 043 continue; 044 } 045 catch (IOException var6) 046 { 047 var6.printStackTrace(); 048 break; 049 } 050 051 String var3 = new String(var1.getData(), var1.getOffset(), var1.getLength()); 052 System.out.println(var1.getAddress() + ": " + var3); 053 this.field_77500_a.func_77551_a(var3, var1.getAddress()); 054 } 055 056 try 057 { 058 this.field_77499_c.leaveGroup(this.field_77498_b); 059 } 060 catch (IOException var4) 061 { 062 ; 063 } 064 065 this.field_77499_c.close(); 066 } 067 }