示例#1
0
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            String      fileName   = this.textBox1.Text;
            String      hostString = Dns.GetHostName();
            IPHostEntry hostinfo   = Dns.GetHostEntry(hostString);

            System.Net.IPAddress[] addresses   = hostinfo.AddressList;
            List <Thread>          threads     = new List <Thread>();
            List <FileDiggerUtil>  diggerUtils = new List <FileDiggerUtil>();

            foreach (IPAddress address in addresses)
            {
                if (!address.IsIPv6LinkLocal)
                {
                    String localIp = address.ToString();
                    localIp = localIp.Substring(0, localIp.LastIndexOf(".") + 1);

                    string[] peerIps = localClient.findPeers();
                    foreach (string peerIp in peerIps)
                    {
                        String         ip   = peerIp;
                        FileDiggerUtil util = new FileDiggerUtil();
                        diggerUtils.Add(util);
                        util.Ip       = ip;
                        util.FileName = this.textBox1.Text;
                        ThreadStart ts = new ThreadStart(util.digFiles);
                        Thread      t  = new Thread(ts);
                        t.Start();
                        threads.Add(t);
                    }
                    foreach (Thread t in threads)
                    {
                        t.Join();
                    }
                    break;
                }
            }
            foreach (FileDiggerUtil util in diggerUtils)
            {
                if (util.Files != null)
                {
                    foreach (String f in util.Files)
                    {
                        this.搜到的文件.Items.Add(util.Ip + "--" + f);
                    }
                }
            }
        }
示例#2
0
        private void button1_Click(object sender, RoutedEventArgs e)
        {
            String fileName=this.textBox1.Text;
            String hostString=Dns.GetHostName();
            IPHostEntry hostinfo = Dns.GetHostEntry(hostString);
            System.Net.IPAddress[] addresses = hostinfo.AddressList;
            List<Thread> threads = new List<Thread>();
            List<FileDiggerUtil> diggerUtils = new List<FileDiggerUtil>();

            foreach(IPAddress address in addresses)
            {
                if (!address.IsIPv6LinkLocal)
                {
                    String localIp = address.ToString();
                    localIp=localIp.Substring(0,localIp.LastIndexOf(".")+1);

                    string[] peerIps=localClient.findPeers();
                    foreach (string peerIp in peerIps)
                    {
                        String ip = peerIp;
                        FileDiggerUtil util = new FileDiggerUtil();
                        diggerUtils.Add(util);
                        util.Ip = ip;
                        util.FileName = this.textBox1.Text;
                        ThreadStart ts = new ThreadStart(util.digFiles);
                        Thread t = new Thread(ts);
                        t.Start();
                        threads.Add(t);
                    }
                    foreach(Thread t in threads){
                        t.Join();
                    }
                    break;
                }
            }
            foreach(FileDiggerUtil util in diggerUtils){
                if (util.Files != null)
                {
                    foreach(String f in util.Files)
                    {
                        this.搜到的文件.Items.Add(util.Ip + "--" + f);
                    }
                }
            }
        }