Lidgren.Network.NetConnection.SendPing C# (CSharp) Method

SendPing() private method

private SendPing ( ) : void
return void
        internal void SendPing()
        {
            m_peer.VerifyNetworkThread();

            m_sentPingNumber++;

            m_sentPingTime = (float)NetTime.Now;
            NetOutgoingMessage om = m_peer.CreateMessage(1);
            om.Write((byte)m_sentPingNumber); // truncating to 0-255
            om.m_messageType = NetMessageType.Ping;

            int len = om.Encode(m_peer.m_sendBuffer, 0, 0);
            bool connectionReset;
            m_peer.SendPacket(len, m_remoteEndPoint, 1, out connectionReset);

            m_statistics.PacketSent(len, 1);
        }

Usage Example

Beispiel #1
0
        /// <summary>
        /// Returns true if message should be dropped
        /// </summary>
        internal bool HandleNATIntroduction(IncomingNetMessage message)
        {
            if (message.m_type == NetMessageLibraryType.System)
            {
                if (message.m_data.LengthBytes > 4 && message.m_data.PeekByte() == (byte)NetSystemType.NatIntroduction)
                {
                    if ((m_enabledMessageTypes & NetMessageType.NATIntroduction) != NetMessageType.NATIntroduction)
                    {
                        return(true);                        // drop
                    }
                    try
                    {
                        message.m_data.ReadByte();                         // step past system type byte
                        IPEndPoint presented = message.m_data.ReadIPEndPoint();

                        LogVerbose("Received NATIntroduction to " + presented + "; sending punching ping...");

                        double now = NetTime.Now;
                        NetConnection.SendPing(this, presented, now);

                        if (m_holePunches == null)
                        {
                            m_holePunches = new List <IPEndPoint>();
                        }

                        for (int i = 0; i < 5; i++)
                        {
                            m_holePunches.Add(new IPEndPoint(presented.Address, presented.Port));
                        }

                        NetBuffer info = CreateBuffer();
                        info.Write(presented);
                        NotifyApplication(NetMessageType.NATIntroduction, info, message.m_sender, message.m_senderEndPoint);
                        return(true);
                    }
                    catch (Exception ex)
                    {
                        NotifyApplication(NetMessageType.BadMessageReceived, "Bad NAT introduction message received: " + ex.Message, message.m_sender, message.m_senderEndPoint);
                        return(true);
                    }
                }
            }
            return(false);
        }
All Usage Examples Of Lidgren.Network.NetConnection::SendPing