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    }