Beispiel #1
0
        static void Main(string[] args)
        {
            Port = args.Length < 1 ? DEFAULT_PORT : Int32.Parse(args[0]);
            var ip = IPAddress.Any;

            Console.WriteLine("Starting echo server...");
            Console.WriteLine("Will begin listening for requests on {0}:{1}", ip, Port);
            var bootstrapper =
                new ServerBootstrap()
                .WorkerThreads(2)
                .SetTransport(TransportType.Udp)
                .Build();
            IReactor reactor = bootstrapper.NewReactor(NodeBuilder.BuildNode().Host(ip).WithPort(Port));

            reactor.OnConnection += (node, connection) =>
            {
                ServerPrint(node,
                            string.Format("Accepting connection from... {0}:{1}", node.Host, node.Port));
                connection.BeginReceive(Receive);
            };
            reactor.OnDisconnection += (reason, address) => ServerPrint(address.RemoteHost,
                                                                        string.Format("Closed connection to... {0}:{1} [Reason:{2}]", address.RemoteHost.Host, address.RemoteHost.Port, reason.Type));

            reactor.Start();
            Console.ReadKey();
        }
Beispiel #2
0
        private static void Main(string[] args)
        {
            var host = IPAddress.Any;
            var port = 9991;

            Console.Title = "Server";
            Console.WriteLine("Starting server on {0}:{1}", host, port);
            var executor = new TryCatchExecutor(exception => Console.WriteLine("Unhandled exception: {0}", exception));

            var bootstrapper =
                new ServerBootstrap()
                .WorkerThreads(2)
                .Executor(executor)
                .SetTransport(TransportType.Tcp)
                .Build();
            var server = bootstrapper.NewReactor(NodeBuilder.BuildNode().Host(host).WithPort(port));

            server.OnConnection += (address, connection) =>
            {
                Console.WriteLine("Connected: {0}", address);
                connection.BeginReceive(Receive);
            };
            server.OnDisconnection += (reason, address) =>
                                      Console.WriteLine("Disconnected: {0}; Reason: {1}", address.RemoteHost, reason.Type);
            server.Start();
            Console.WriteLine("Running, press any key to exit");
            Console.ReadKey();
            Console.WriteLine("Shutting down...");
            server.Stop();
            Console.WriteLine("Terminated");
        }
Beispiel #3
0
 /// <summary>
 /// 启动一个通信
 /// </summary>
 /// <param name="nodeConfig"></param>
 public virtual bool StartReactor(NodeConfig nodeConfig)
 {
     try
     {
         var bootstrapper = new ServerBootstrap()
                            .WorkerThreads(2)
                            .Build();
         reactor = bootstrapper.NewReactor(NodeBuilder.BuildNode().Host(nodeConfig));
         reactor.ConnectionAdapter = new ProtocolUT("12", (ReactorBase)reactor);
         reactor.Start();
         connectionAdapter = reactor.ConnectionAdapter;
         return(true);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.ToString());
     }
     return(false);
 }
 /// <summary>
 /// 启动一个通信
 /// </summary>
 /// <param name="nodeConfig"></param>
 public bool StartReactor(NodeConfig nodeConfig)
 {
     try
     {
         var bootstrapper = new ServerBootstrap()
                            .WorkerThreads(2)
                            //.SetConfig(new DefaultConnectionConfig().SetOption(OptionKeyEnums.ParseTimeOut.ToString(), 5))
                            .Build();
         reactor = bootstrapper.NewReactor(NodeBuilder.BuildNode().Host(nodeConfig));
         reactor.ConnectionAdapter = new ProtocolUT("SerialProtocol", (ReactorBase)reactor);
         reactor.Start();
         connectionAdapter = reactor.ConnectionAdapter;
         return(true);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.ToString());
     }
     return(false);
 }
Beispiel #5
0
        private void btnStartServer_Click(object sender, EventArgs e)
        {
            var host = IPAddress.Any;
            var port = 9991;

            lblTxt.Text = string.Format("开启服务 {0}:{1}", host, port);

            var serverFactory =
                new ServerBootstrap()
                .SetTransport(TransportType.Tcp)
                .Build();

            server = serverFactory.NewReactor(NodeBuilder.BuildNode().Host(host).WithPort(port));
            server.OnConnection += (address, connection) =>
            {
                connection.BeginReceive(Receive);
            };
            server.OnDisconnection += (reason, address) => { };
            //MessageBox.Show(string.Format("断开连接: {0}; 原因: {1}", address.RemoteHost, reason.Type));
            server.Start();
        }
Beispiel #6
0
        private void Run()
        {
            var bootstrapper =
                new ServerBootstrap()
                .WorkerThreads(4)
                .SetTransport(TransportType.Udp)
                .Build();

            _reactor = bootstrapper.NewReactor(
                NodeBuilder.BuildNode()
                .Host(HostIp)
                .WithPort(HostPort));
            _reactor.OnConnection += (node, connection) =>
            {
                //ServerPrint(node,
                //    string.Format("Accepting connection from... {0}:{1}", node.Host, node.Port));
                connection.BeginReceive(UdpPackerReceiveCallback);
            };
            //reactor.OnDisconnection += (reason, address) => ServerPrint(address.RemoteHost,
            //    string.Format("Closed connection to... {0}:{1} [Reason:{2}]", address.RemoteHost.Host, address.RemoteHost.Port, reason.Type));
            _reactor.Start();
        }