public void SendPing(NetworkingPlayer playerRequesting, DateTime time)
        {
            OUTER_BM2B_Ping_Req msg = new OUTER_BM2B_Ping_Req();

            msg.receivedTimestep = (ulong)DateTime.UtcNow.Ticks;
            SendMessage <OUTER_BM2B_Ping_Req>(msg, playerRequesting.TcpClientHandle);
        }
        public ProtoMsg GenerateProtoPing()
        {
            OUTER_BM2B_Ping_Req msg = new OUTER_BM2B_Ping_Req();

            msg.receivedTimestep = (ulong)DateTime.UtcNow.Ticks;
            return(ProtoToData <OUTER_BM2B_Ping_Req>(msg));
        }
        public void SendPing()
        {
            OUTER_BM2B_Ping_Req msg = new OUTER_BM2B_Ping_Req();

            msg.receivedTimestep = (ulong)DateTime.UtcNow.Ticks;
            SendMessage <OUTER_BM2B_Ping_Req>(msg);
        }
        public void OnPingMessage(OUTER_BM2B_Ping_Req msg, NetworkingPlayer player)
        {
            // 发送ping时的 发送者时间
            DateTime received = new DateTime((long)msg.receivedTimestep);

            // 反馈ping, 将发送ping时的 发送者时间 一起发给他
            Pong(player, received);
        }