Beispiel #1
0
        static void TestServer()
        {
            // 实例化服务端,指定端口,同时在Tcp/Udp/IPv4/IPv6上监听
            var svr = new NetServer
            {
                Port = 1234,
                Log  = XTrace.Log
            };

            //svr.Add(new LengthFieldCodec { Size = 4 });
            svr.Add <StandardCodec>();
            svr.Add <EchoHandler>();

            // 打开原始数据日志
            var ns = svr.Server;

            ns.LogSend    = true;
            ns.LogReceive = true;

            svr.Start();

            _server = svr;

            // 定时显示性能数据
            _timer = new TimerX(ShowStat, svr, 100, 1000);
        }
Beispiel #2
0
        static void TestServer()
        {
            _counter = new PerfCounter();

            // 实例化服务端,指定端口,同时在Tcp/Udp/IPv4/IPv6上监听
            var svr = new NetServer
            {
                Port = 1234,
                Log  = XTrace.Log,
#if DEBUG
                SocketLog  = XTrace.Log,
                LogSend    = true,
                LogReceive = true,
#endif
            };

            //svr.Add(new LengthFieldCodec { Size = 4 });
            svr.Add <StandardCodec>();
            //svr.Add<EchoHandler>();
            svr.Add(new EchoHandler {
                Counter = _counter
            });

            svr.Start();

            _server = svr;

            // 定时显示性能数据
            _timer = new TimerX(ShowStat, svr, 100, 1000)
            {
                Async = true
            };
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            var svr = new NetServer
            {
                Port       = 1234,
                Log        = XTrace.Log,
                SessionLog = XTrace.Log,
                SocketLog  = XTrace.Log,
            };

            svr.Add <StandardCodec>();
            svr.Add <EchoHandler>();
            svr.Start();
            Console.ReadKey();
        }
Beispiel #4
0
        private void btnConnect_Click(Object sender, EventArgs e)
        {
            _config.Save();
            SaveConfig();

            var btn = sender as Button;

            if (btn.Text == "开始")
            {
                var svr = new NetServer((Int32)numPort.Value)
                {
                    Log = _log,
                    //SessionLog = _log,
                    //SocketLog = _log,
                    //LogReceive = true,
                    //LogSend = true,
                };

                var set = NetConfig.Current;
                if (set.ShowLog)
                {
                    svr.SessionLog = _log;
                }
                if (set.ShowSocketLog)
                {
                    svr.SocketLog = _log;
                }
                if (set.ShowSend)
                {
                    svr.LogSend = true;
                }
                if (set.ShowReceive)
                {
                    svr.LogReceive = true;
                }

                // 加入定长编码器,处理Tcp粘包
                svr.Add(new LengthFieldCodec {
                    Offset = 4, Size = -2
                });
                svr.Received += OnReceived;
                svr.Start();

                _Server = svr;

                ShowData();

                pnlSetting.Enabled = false;
                btn.Text           = "停止";
            }
            else
            {
                _Server.TryDispose();
                _Server = null;
                _timer.TryDispose();

                pnlSetting.Enabled = true;
                btn.Text           = "开始";
            }
        }
Beispiel #5
0
        static async void Test5()
        {
            Console.WriteLine("服务端1,客户端2:");
            if (Console.ReadKey().KeyChar == '1')
            {
                var svr = new NetServer(777);
#if DEBUG
                svr.Log = XTrace.Log; svr.LogSend = true; svr.LogReceive = true;
#endif
                //svr.Add<DefaultCodec>();
                svr.Add(new LengthFieldCodec {
                    Size = 4
                });
                //svr.Add<BinaryCodec<UserY>>();
                svr.Add <JsonCodec <UserY> >();
                svr.Add <EchoHandler>();
                svr.Start();
            }
            else
            {
                var client = new NetUri("tcp://127.0.0.1:777").CreateRemote();
#if DEBUG
                client.Log = XTrace.Log; client.LogSend = true; client.LogReceive = true;
#endif
                //client.Add<DefaultCodec>();
                client.Add(new LengthFieldCodec {
                    Size = 4
                });
                //client.Add<BinaryCodec<UserY>>();
                client.Add <JsonCodec <UserY> >();
                client.Open();

                //client.Send("Stone");
                var user = new UserY {
                    ID = 0x1234, Name = "Stone", DisplayName = "大石头"
                };
                for (var i = 0; i < 3; i++)
                {
                    var rs = await client.SendAsync(user) as UserY;

                    XTrace.WriteLine("{0} {1}", rs.Name, rs.DisplayName);
                }
            }
        }