예제 #1
0
        public void Connect()
        {
            // FIXME: sometimes it does not work correctly
            fLogger.WriteInfo("Public IP: " + NetHelper.GetPublicIPAddress());

            var snkInfoHash = ProtocolHelper.CreateSignInfoKey();

            fLogger.WriteInfo("Search for: " + snkInfoHash.ToHexString());

            fDHTClient.Run();
            fDHTClient.JoinNetwork();
            fDHTClient.SearchNodes(snkInfoHash);

            fTCPClient.Connect(fTCPListenerPort);

            fConnected = true;
            new Thread(() => {
                int x = 0;
                while (fConnected)
                {
                    if (++x >= 60)
                    {
                        CheckPeers();
                        x = 0;
                    }
                    Thread.Sleep(1000);
                }
            }).Start();
        }
        public void Connect()
        {
            var dhtNodes = fDatabase.LoadNodes();

            fDHTClient.RoutingTable.UpdateNodes(dhtNodes);

            fDHTClient.Start(GKNInfoHash);

            fTCPClient.Connect(fTCPListenerPort);

            fConnectionState = ConnectionState.Connection;
            new Thread(() => {
                while (fConnectionState != ConnectionState.Disconnected)
                {
                    CheckPeers();
                    Thread.Sleep(60000);
                }
            }).Start();
        }
예제 #3
0
        public void Connect()
        {
            fDHTClient.Run();
            fDHTClient.JoinNetwork();
            fDHTClient.SearchNodes(GKNInfoHash);

            fTCPClient.Connect(fTCPListenerPort);

            fConnected = true;
            new Thread(() => {
                int x = 0;
                while (fConnected)
                {
                    if (++x >= 60)
                    {
                        CheckPeers();
                        x = 0;
                    }
                    Thread.Sleep(1000);
                }
            }).Start();
        }