Exemple #1
0
        public CPeers(int NumConnections, int Reserved)
        {
            mPeers       = new CPeer[NumConnections];
            mNumReserved = Reserved;

            instance = this;
        }
Exemple #2
0
        private bool IsStopped = false; //set true per spegnere il server

        private CServer(List <CPeer> Peers)
        {
            rsaKeyPair = new RSACryptoServiceProvider(); // crea oggetto CSP per generare o caricare il keypair
            if (File.Exists("keystore.xml"))             // Se il file di keystore esiste viene caricato in memoria
            {
                rsaKeyPair = new RSACryptoServiceProvider();
                string xmlString = rsaKeyPair.ToXmlString(true);
                File.WriteAllText("keystore.xml", xmlString);
            }
            else//se il file non esiste ne viene generato uno
            {
                rsaKeyPair = RSA.GenRSAKey();
                string xmlString = rsaKeyPair.ToXmlString(true);
                File.WriteAllText("keystore.xml", xmlString);
            }


            mLastBlockNumber = CBlockChain.Instance.LastBlock.BlockNumber;
            if (Program.DEBUG)
            {
                CIO.DebugOut("Last block number: " + mLastBlockNumber + ".");
            }

            if (Program.DEBUG)
            {
                CIO.DebugOut("Inizialize mPeers...");
            }
            mPeers = new CPeers(MAX_PEERS, RESERVED_CONNECTION);

            if (Program.DEBUG)
            {
                CIO.DebugOut("Inizialie the Listener...");
            }
            //crea un socket che attende connessioni in ingresso di peer che vogliono collegarsi, in ascolto sulla porta DEFOULT_PORT
            IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, DEFOULT_PORT);

            mListener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            mListener.Bind(localEndPoint);
            mListener.Listen(DEFOULT_PORT);

            if (Program.DEBUG)
            {
                CIO.DebugOut("Finish inizializing!");
            }
            Start(Peers);
        }