using System;using NewLife;using NewLife.Data;using NewLife.Log;using NewLife.Net;using NewLife.Net.Handlers;using NewLife.Threading;namespace HandlerTest{class Program{static void Main(String[] args){XTrace.UseConsole();try{Console.Write("请选择运行模式:1,服务端;2,客户端 ");var ch = Console.ReadKey().KeyChar;Console.WriteLine();if (ch == '1')TestServer();elseTestClient();}catch (Exception ex){XTrace.WriteException(ex);}Console.WriteLine("OK!");Console.ReadKey();}static TimerX _timer;static NetServer _server;static PerfCounter _counter;static void TestServer(){_counter = new PerfCounter();// 实例化服务端,指定端口,同时在Tcp/Udp/IPv4/IPv6上监听var svr = new NetServer{Port = 1234,Log = XTrace.Log,#if DEBUGSocketLog = 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 };}static void TestClient(){var uri = new NetUri("tcp://127.0.0.1:1234");//var uri = new NetUri("tcp://net.newlifex.com:1234");var client = uri.CreateRemote();client.Log = XTrace.Log;client.LogSend = true;client.LogReceive = true;client.Received += (s, e) =>{var pk = e.Message as Packet;XTrace.WriteLine("收到:{0}", pk.ToStr());};//client.Add(new LengthFieldCodec { Size = 4 });client.Add<StandardCodec>();client.Open();// 定时显示性能数据_timer = new TimerX(ShowStat, client, 100, 1000) { Async = true };// 循环发送数据for (var i = 0; i < 5; i++){var str = "你好" + (i + 1);var pk = new Packet(str.GetBytes());client.SendMessageAsync(pk);}}class User{public Int32 ID { get; set; }public String Name { get; set; }}private static String _last;static void ShowStat(Object state){var msg = "";if (state is NetServer ns)msg = "处理:" + _counter + " " + ns.GetStat();//else if (state is ISocketRemote ss)// msg = ss.GetStat();if (msg == _last) return;_last = msg;//Console.Title = msg;XTrace.WriteLine(msg);}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。