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(); }
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"); }
/// <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); }
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(); }
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(); }