예제 #1
0
        private async void button5_Click(object sender, RoutedEventArgs e)
        {
            List <PeerAddress> ips = await P2PConnectionManager.GetDNSSeedIPAddressesAsync(P2PNetworkParameters.DNSSeedHosts, _networkParameters);

            Thread threadLable = new Thread(new ThreadStart(() =>
            {
                while (true)
                {
                    Dispatcher.Invoke(() =>
                    {
                        label.Content = "Inbound: " + P2PConnectionManager.GetInboundP2PConnections().Count + " Outbound: " + P2PConnectionManager.GetOutboundP2PConnections().Count;
                    });
                    Thread.CurrentThread.Join(1000);
                }
            }));

            threadLable.IsBackground = true;
            threadLable.Start();

            foreach (PeerAddress ip in ips)
            {
                Thread connectThread = new Thread(new ThreadStart(() =>
                {
                    P2PConnection p2p = new P2PConnection(ip.IPAddress, _networkParameters, new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp));
                    p2p.ConnectToPeer(1);
                }));
                connectThread.IsBackground = true;
                connectThread.Start();
            }
        }
예제 #2
0
        private async void button4_Click(object sender, RoutedEventArgs e)
        {
            List <PeerAddress> ips;

            if (!_networkParameters.IsTestNet)
            {
                ips = await P2PConnectionManager.GetDNSSeedIPAddressesAsync(P2PNetworkParameters.DNSSeedHosts, _networkParameters);
            }
            else
            {
                ips = await P2PConnectionManager.GetDNSSeedIPAddressesAsync(P2PNetworkParameters.TestNetDNSSeedHosts, _networkParameters);
            }
            MessageBox.Show(ips.Count.ToString());
        }