DcRat/Server/Handle Packet/HandlePing.cs

54 lines
2.0 KiB
C#

using Server.MessagePack;
using Server.Connection;
using System.Diagnostics;
using System.Windows.Forms;
using System.Threading;
using System.Drawing;
namespace Server.Handle_Packet
{
public class HandlePing
{
public void Ping(Clients client, MsgPack unpack_msgpack)
{
try
{
MsgPack msgpack = new MsgPack();
msgpack.ForcePathObject("Pac_ket").SetAsString("Po_ng");
ThreadPool.QueueUserWorkItem(client.Send, msgpack.Encode2Bytes());
lock (Settings.LockListviewClients)
if (client.LV != null)
client.LV.SubItems[Program.form1.lv_act.Index].Text = unpack_msgpack.ForcePathObject("Message").AsString;
else
Debug.WriteLine("Temp socket pinged server");
}
catch { }
}
public void Po_ng(Clients client, MsgPack unpack_msgpack)
{
try
{
lock (Settings.LockListviewClients)
if (client.LV != null)
{
client.LV.SubItems[Program.form1.lv_ping.Index].Text = unpack_msgpack.ForcePathObject("Message").AsInteger.ToString() + " MS";
if (unpack_msgpack.ForcePathObject("Message").AsInteger > 600)
{
client.LV.SubItems[Program.form1.lv_ping.Index].ForeColor = Color.Red;
}
else if (unpack_msgpack.ForcePathObject("Message").AsInteger > 300)
{
client.LV.SubItems[Program.form1.lv_ping.Index].ForeColor = Color.Orange;
}
else
{
client.LV.SubItems[Program.form1.lv_ping.Index].ForeColor = Color.Green;
}
}
}
catch { }
}
}
}