You've already forked lidgren-network-gen3
mirror of
https://github.com/lidgren/lidgren-network-gen3.git
synced 2026-05-17 07:36:32 +09:00
Enumerated and exposed network thread name
This commit is contained in:
@@ -31,6 +31,8 @@ namespace Lidgren.Network
|
|||||||
[DebuggerDisplay("Status={m_status}")]
|
[DebuggerDisplay("Status={m_status}")]
|
||||||
public partial class NetPeer
|
public partial class NetPeer
|
||||||
{
|
{
|
||||||
|
private static int s_threadCount = 0;
|
||||||
|
|
||||||
internal const int kMinPacketHeaderSize = 2;
|
internal const int kMinPacketHeaderSize = 2;
|
||||||
internal const int kMaxPacketHeaderSize = 5;
|
internal const int kMaxPacketHeaderSize = 5;
|
||||||
|
|
||||||
@@ -51,6 +53,11 @@ namespace Lidgren.Network
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public NetPeerStatus Status { get { return m_status; } }
|
public NetPeerStatus Status { get { return m_status; } }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Name of the network thread (if NetPeer.Start has been called)
|
||||||
|
/// </summary>
|
||||||
|
public string NetworkThreadName { get { return (m_networkThread == null ? string.Empty : m_networkThread.Name); } }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets a copy of the list of connections
|
/// Gets a copy of the list of connections
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -141,10 +148,10 @@ namespace Lidgren.Network
|
|||||||
m_configuration.VerifyAndLock();
|
m_configuration.VerifyAndLock();
|
||||||
|
|
||||||
InitializeNetwork();
|
InitializeNetwork();
|
||||||
|
|
||||||
// start network thread
|
// start network thread
|
||||||
m_networkThread = new Thread(new ThreadStart(NetworkLoop));
|
m_networkThread = new Thread(new ThreadStart(NetworkLoop));
|
||||||
m_networkThread.Name = "Lidgren network thread";
|
m_networkThread.Name = "Lidgren network thread " + Interlocked.Increment(ref s_threadCount).ToString();
|
||||||
m_networkThread.IsBackground = true;
|
m_networkThread.IsBackground = true;
|
||||||
m_networkThread.Start();
|
m_networkThread.Start();
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ namespace Lidgren.Network
|
|||||||
private const double c_realUnitUint = 1.0 / ((double)uint.MaxValue + 1.0);
|
private const double c_realUnitUint = 1.0 / ((double)uint.MaxValue + 1.0);
|
||||||
private const uint c_y = 842502087, c_z = 3579807591, c_w = 273326509;
|
private const uint c_y = 842502087, c_z = 3579807591, c_w = 273326509;
|
||||||
|
|
||||||
private static int m_extraSeed = 42;
|
private static int s_extraSeed = 42;
|
||||||
|
|
||||||
uint m_x, m_y, m_z, m_w;
|
uint m_x, m_y, m_z, m_w;
|
||||||
|
|
||||||
@@ -68,7 +68,7 @@ namespace Lidgren.Network
|
|||||||
seed ^= (int)(Stopwatch.GetTimestamp());
|
seed ^= (int)(Stopwatch.GetTimestamp());
|
||||||
seed ^= (int)(Environment.WorkingSet); // will return 0 on mono
|
seed ^= (int)(Environment.WorkingSet); // will return 0 on mono
|
||||||
|
|
||||||
int extraSeed = Interlocked.Increment(ref m_extraSeed);
|
int extraSeed = Interlocked.Increment(ref s_extraSeed);
|
||||||
|
|
||||||
return seed + extraSeed;
|
return seed + extraSeed;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace DurableClient
|
|||||||
public static Form1 MainForm;
|
public static Form1 MainForm;
|
||||||
public static NetClient Client;
|
public static NetClient Client;
|
||||||
|
|
||||||
private static bool m_sendStuff;
|
private static bool s_sendStuff;
|
||||||
|
|
||||||
[STAThread]
|
[STAThread]
|
||||||
static void Main()
|
static void Main()
|
||||||
@@ -38,13 +38,13 @@ namespace DurableClient
|
|||||||
NativeMethods.AppendText(MainForm.richTextBox1, text);
|
NativeMethods.AppendText(MainForm.richTextBox1, text);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static double m_nextSendReliableOrdered;
|
private static double s_nextSendReliableOrdered;
|
||||||
private static uint[] m_reliableOrderedNr = new uint[3];
|
private static uint[] s_reliableOrderedNr = new uint[3];
|
||||||
|
|
||||||
private static double m_nextSendSequenced;
|
private static double s_nextSendSequenced;
|
||||||
private static uint[] m_sequencedNr = new uint[3];
|
private static uint[] s_sequencedNr = new uint[3];
|
||||||
|
|
||||||
private static double m_lastLabelUpdate;
|
private static double s_lastLabelUpdate;
|
||||||
private const double kLabelUpdateFrequency = 0.25;
|
private const double kLabelUpdateFrequency = 0.25;
|
||||||
|
|
||||||
static void AppLoop(object sender, EventArgs e)
|
static void AppLoop(object sender, EventArgs e)
|
||||||
@@ -73,14 +73,14 @@ namespace DurableClient
|
|||||||
if (status == NetConnectionStatus.Connected)
|
if (status == NetConnectionStatus.Connected)
|
||||||
{
|
{
|
||||||
// go
|
// go
|
||||||
m_sendStuff = true;
|
s_sendStuff = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Client.Recycle(msg);
|
Client.Recycle(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_sendStuff)
|
if (s_sendStuff)
|
||||||
{
|
{
|
||||||
double now = NetTime.Now;
|
double now = NetTime.Now;
|
||||||
|
|
||||||
@@ -89,34 +89,34 @@ namespace DurableClient
|
|||||||
float speedMultiplier = 1.0f / speed;
|
float speedMultiplier = 1.0f / speed;
|
||||||
|
|
||||||
int r = NetRandom.Instance.Next(3);
|
int r = NetRandom.Instance.Next(3);
|
||||||
if (now > m_nextSendReliableOrdered)
|
if (now > s_nextSendReliableOrdered)
|
||||||
{
|
{
|
||||||
NetOutgoingMessage om = Client.CreateMessage(5);
|
NetOutgoingMessage om = Client.CreateMessage(5);
|
||||||
|
|
||||||
uint rv = m_reliableOrderedNr[r];
|
uint rv = s_reliableOrderedNr[r];
|
||||||
m_reliableOrderedNr[r]++;
|
s_reliableOrderedNr[r]++;
|
||||||
|
|
||||||
om.Write(rv);
|
om.Write(rv);
|
||||||
|
|
||||||
Client.SendMessage(om, NetDeliveryMethod.ReliableOrdered, r);
|
Client.SendMessage(om, NetDeliveryMethod.ReliableOrdered, r);
|
||||||
m_nextSendReliableOrdered = now + (NetRandom.Instance.NextFloat() * (0.01f * speedMultiplier)) + (0.005f * speedMultiplier);
|
s_nextSendReliableOrdered = now + (NetRandom.Instance.NextFloat() * (0.01f * speedMultiplier)) + (0.005f * speedMultiplier);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (now > m_nextSendSequenced)
|
if (now > s_nextSendSequenced)
|
||||||
{
|
{
|
||||||
NetOutgoingMessage om = Client.CreateMessage();
|
NetOutgoingMessage om = Client.CreateMessage();
|
||||||
|
|
||||||
uint v = m_sequencedNr[r];
|
uint v = s_sequencedNr[r];
|
||||||
m_sequencedNr[r]++;
|
s_sequencedNr[r]++;
|
||||||
om.Write(v);
|
om.Write(v);
|
||||||
Client.SendMessage(om, NetDeliveryMethod.UnreliableSequenced, r);
|
Client.SendMessage(om, NetDeliveryMethod.UnreliableSequenced, r);
|
||||||
m_nextSendSequenced = now + (NetRandom.Instance.NextFloat() * (0.01f * speedMultiplier)) + (0.005f * speedMultiplier);
|
s_nextSendSequenced = now + (NetRandom.Instance.NextFloat() * (0.01f * speedMultiplier)) + (0.005f * speedMultiplier);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (now > m_lastLabelUpdate + kLabelUpdateFrequency)
|
if (now > s_lastLabelUpdate + kLabelUpdateFrequency)
|
||||||
{
|
{
|
||||||
UpdateLabel();
|
UpdateLabel();
|
||||||
m_lastLabelUpdate = now;
|
s_lastLabelUpdate = now;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -131,8 +131,8 @@ namespace DurableClient
|
|||||||
bdr.Append(Client.Statistics.ToString());
|
bdr.Append(Client.Statistics.ToString());
|
||||||
bdr.Append(conn.Statistics.ToString());
|
bdr.Append(conn.Statistics.ToString());
|
||||||
|
|
||||||
bdr.AppendLine("SENT Reliable ordered: " + m_reliableOrderedNr[0] + ", " + m_reliableOrderedNr[1] + ", " + m_reliableOrderedNr[2]);
|
bdr.AppendLine("SENT Reliable ordered: " + s_reliableOrderedNr[0] + ", " + s_reliableOrderedNr[1] + ", " + s_reliableOrderedNr[2]);
|
||||||
bdr.AppendLine("SENT Sequenced: " + m_sequencedNr[0] + ", " + m_sequencedNr[1] + ", " + m_sequencedNr[2]);
|
bdr.AppendLine("SENT Sequenced: " + s_sequencedNr[0] + ", " + s_sequencedNr[1] + ", " + s_sequencedNr[2]);
|
||||||
MainForm.label1.Text = bdr.ToString();
|
MainForm.label1.Text = bdr.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user