Example #1
0
        private void DoListen()

        {
            try

            {
                _listener.Start();

                do

                {
                    TcpClient tcpClient = _listener.AcceptTcpClient();

                    LocalClient localClient = new LocalClient(tcpClient);

                    localClient.OnReceiveObject += ReceiveObject;

                    localClient.Start();
                }while (true);
            }

            catch (Exception)

            {
            }//try
        }
Example #2
0
    public void Start()

    {
        _client = new LocalClient();

        _client.OnConnected += Connected;

        _client.Start();
    }
Example #3
0
        public static void Main(string[] args)
        {
            //TODO
            //MainnetRules.BypassValidation = true;
            //MainnetRules.BypassExecuteScript = true;
            ScriptEngine.BypassVerifySignature = true;

            using (var storageContext = new MemoryStorageContext())
                using (var cacheContext = new CacheContext(storageContext))
                {
                    var rules = new Testnet2Rules(cacheContext);

                    using (var blockchainDaemon = new BlockchainDaemon(rules, cacheContext))
                        using (var knownAddressStorage = new MemoryStorage <NetworkAddressKey, NetworkAddressWithTime>(storageContext))
                            using (var localClient = new LocalClient(LocalClientType.ComparisonToolTestNet, blockchainDaemon, knownAddressStorage))
                            {
                                // start the blockchain daemon
                                blockchainDaemon.Start();

                                // start p2p client
                                localClient.Start();

                                var projectFolder = Environment.CurrentDirectory;
                                while (projectFolder.Contains(@"\bin"))
                                {
                                    projectFolder = Path.GetDirectoryName(projectFolder);
                                }

                                File.Delete(Path.Combine(projectFolder, "Bitcoinj-comparison.log"));

                                var javaProcessStartInfo = new ProcessStartInfo
                                {
                                    FileName         = @"C:\Program Files\Java\jdk1.7.0_25\bin\java.exe",
                                    WorkingDirectory = projectFolder,
                                    Arguments        = @"-Djava.util.logging.config.file={0}\bitcoinj.log.properties -jar {0}\bitcoinj.jar".Format2(projectFolder),
                                    UseShellExecute  = false
                                };

                                var javaProcess = Process.Start(javaProcessStartInfo);

                                javaProcess.WaitForExit((int)TimeSpan.FromMinutes(5).TotalMilliseconds);
                                Console.ReadLine();
                            }
                }
        }
        public static void Main(string[] args)
        {
            //TODO
            //MainnetRules.BypassValidation = true;
            //MainnetRules.BypassExecuteScript = true;
            ScriptEngine.BypassVerifySignature = true;

            using (var storageContext = new MemoryStorageContext())
            using (var cacheContext = new CacheContext(storageContext))
            {
                var rules = new Testnet2Rules(cacheContext);

                using (var blockchainDaemon = new BlockchainDaemon(rules, cacheContext))
                using (var knownAddressStorage = new MemoryStorage<NetworkAddressKey, NetworkAddressWithTime>(storageContext))
                using (var localClient = new LocalClient(LocalClientType.ComparisonToolTestNet, blockchainDaemon, knownAddressStorage))
                {
                    // start the blockchain daemon
                    blockchainDaemon.Start();

                    // start p2p client
                    localClient.Start();

                    var projectFolder = Environment.CurrentDirectory;
                    while (projectFolder.Contains(@"\bin"))
                        projectFolder = Path.GetDirectoryName(projectFolder);

                    File.Delete(Path.Combine(projectFolder, "Bitcoinj-comparison.log"));

                    var javaProcessStartInfo = new ProcessStartInfo
                        {
                            FileName = @"C:\Program Files\Java\jdk1.7.0_25\bin\java.exe",
                            WorkingDirectory = projectFolder,
                            Arguments = @"-Djava.util.logging.config.file={0}\bitcoinj.log.properties -jar {0}\bitcoinj.jar".Format2(projectFolder),
                            UseShellExecute = false
                        };

                    var javaProcess = Process.Start(javaProcessStartInfo);

                    javaProcess.WaitForExit((int)TimeSpan.FromMinutes(5).TotalMilliseconds);
                    Console.ReadLine();
                }
            }
        }
Example #5
0
 void Recv()
 {
     byte[] buffer = new byte[8 * 1024];
     while (true)
     {
         try
         {
             int n = socket.Recv(buffer, 0, buffer.Length, out var end);
             //Console.WriteLine($"RouteServer:: Recv { Encoding.ASCII.GetString(buffer, 0, n)} remote = {end} ");
             int idx = 0;
             if (buffer.TryGet(ref idx, out Header header))
             {
                 if (header.mask == Header.MASK)
                 {
                     if (remoteEnd.eq(end))
                     {
                         if (header.opcode == Header.ResConnect.opcode)
                         {
                             Console.WriteLine("LocalServer connected");
                             buffer.TryGet(ref idx, out int port);
                             (remoteEnd as IPEndPoint).Port = port;
                             isRunTick = true;
                         }
                         else if (header.opcode == Header.MSG.opcode)
                         {
                             if (buffer.TryGet(ref idx, out int cid))
                             {
                                 if (!clients.TryGetValue(cid, out var client))
                                 {
                                     client = new LocalClient(cid, gameEnd, localEnd);
                                     client.Start();
                                     clients.Add(cid, client);
                                     catckes.Add(cid);
                                 }
                                 if (client.isRun)
                                 {
                                     client.tickCount = 0;
                                     //Console.WriteLine($"RouteServer::size = {SizeOf<RouteHeader>.value} idx= {idx} cid = {cid}");
                                     buffer.TryGet(idx, out int mask);
                                     //Console.WriteLine($"RouteServer:: byffer = {buffer.ToHexStr()}");
                                     client.socket.SendTo(buffer, idx, n - idx, SocketFlags.None, gameEnd);
                                 }
                             }
                         }
                     }
                     else
                     {
                         socket.SendTo(buffer, 0, n, SocketFlags.None, remoteEnd);
                     }
                 }
             }
         }
         catch (SocketException se)
         {
             Console.WriteLine(se);
             if (se.SocketErrorCode == SocketError.ConnectionReset)
             {
                 continue;
             }
             if (se.SocketErrorCode == SocketError.Interrupted)
             {
                 continue;
             }
         }
         catch (Exception e)
         {
             Console.WriteLine(e);
         }
     }
 }