Пример #1
0
        static void Main(string[] args)
        {
            // Set log mode
            LogTextWriter.InitLogMode();
            // Start listener
            var srv = new OTcpServer(1010);
            // Create server instance
            var impl = new ServerLogicImplementation();

            // Register server implementation
            srv.RegisterImplementation(impl);

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine($"The {Process.GetCurrentProcess().ProcessName} start");
            Console.WriteLine("Write message nad press Enter key to send notifications");
            Console.ResetColor();
            while (true)
            {
                var msg = Console.ReadLine();
                foreach (var client in impl.Subscribes)
                {
                    client.Notify(msg);
                }
                Console.WriteLine($"{impl.Subscribes.Count} notification{(impl.Subscribes.Count > 1 ? "s" : "")}");
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            var soapUrl = $"http://{Environment.MachineName}:{1155}";
            var restUrl = $"http://{Environment.MachineName}:{1156}";
            var ogamUrl = Environment.MachineName;

            if (args.Any())
            {
                var host = args.First();
                soapUrl = $"http://{host}:{1155}";
                restUrl = $"http://{host}:{1156}";
                ogamUrl = host;
            }
            else
            {
                var soapBaseAddress = new Uri(soapUrl);
                var soapHost        = new ServiceHost(typeof(Gate), soapBaseAddress);
                soapHost.Open();


                var restBaseAddress = new Uri(restUrl);
                var restHost        = new WebServiceHost(typeof(Gate), restBaseAddress);
                restHost.Open();

                OTcpServer.Log = null;
                var srv  = new OTcpServer(1157);
                var impl = new Gate();
                srv.RegisterImplementation(impl);

                Thread.Sleep(3000);
            }

            var dto = Dto.GetObject();

            var pc = new OTcpClient(ogamUrl, 1157).CreateProxy <IGate>();

            SoapCall(dto, soapUrl);
            RestCall(dto, restUrl);
            O3Call(dto, pc);

            var cnt = 5000;

            Console.Write($"Soap cnt = {cnt} elapsed = ");
            MultiCall(cnt, () => {
                SoapCall(dto, soapUrl);
            });

            Console.Write($"Rest cnt = {cnt} elapsed = ");
            MultiCall(cnt, () => {
                RestCall(dto, restUrl);
            });

            Console.Write($"O3 cnt = {cnt} elapsed = ");
            MultiCall(cnt, () => {
                O3Call(dto, pc);
            });


            Console.ReadLine();
        }
Пример #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            OTcpServerCommands cmds = new OTcpServerCommands();

            cmds.AddCommand("osman", keke);
            OTcpServer server = new OTcpServer();

            server.StartServer(cmds, "127.0.0.1", 12345, TransferType.JSON);
            //server.AddCommand("osman", keke);
            //Non responding void functions
            //server.AddCommand("nene", nene);
            // Non responding data functions
            // Non responding basic data types
            //Basic data types
            //server.AddCommand("dede", integerRT);
            //
            server.Listen();
        }
Пример #4
0
        private void ConnectPipeServer()
        {
            var client = ConnectPipe();

            _transfering?.Dispose();
            _transfering = new Transfering(client.SendStream, client.ReceiveStream, BufferSize);

            var isReconnected = false;

            _transfering.ConnectionStabilised = OnConnectionStabilised + new Action(() => {
                if (isReconnected)
                {
                    _symbolTable = new SymbolTable(_serverQueryInterfaceProxy.GetIndexedSymbols());
                }
                else
                {
                    isReconnected = true;
                }
            });

            _transfering.ConnectionError = ex => {
                lock (_transfering) {
                    // for single raction
                    _transfering.ConnectionError = null;

                    _sendSync.Lock();
                    Console.WriteLine($"Connection ERROR {ex.Message}");
                    OnConnectionError(ex);

                    _connSync.Pulse();
                }
            };

            _transfering.StartReceiver(data => OTcpServer.DataHandler(_evaluator, data, _symbolTable));

            _sendSync.Unlock();
        }