private void Start() { _packetDispatcher = new MethodSelector<Packet>(this, (ref Packet source, out string key) => { key = source.PacketId.ToString(); source.SkipHeader(); }); _udp = new UDPClient(); _udp.EventRead += NetworkEvent_Receive; _udp.EventClose += NetworkEvent_Close; _udp.Connect("127.0.0.1", 10201); _counter = new IntervalCounter(1000); _counter.Start(); (new IntervalTimer(1000, () => { DateTime now = DateTime.Now; Console.WriteLine(string.Format("[{0}/{1} {2}:{3}:{4}] recv: {5}", DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second, _counter.Value)); })).Start(); { Packet reqPacket = new Packet(Protocol.Echo_Req); Send(reqPacket); } }