mirror of
https://github.com/misternebula/quantum-space-buddies.git
synced 2025-12-11 20:15:10 +01:00
network errors
This commit is contained in:
parent
1acebc44cd
commit
8ba823cb79
@ -71,7 +71,7 @@ public static class Util
|
|||||||
if (transport.DoFakeNetworkErrors)
|
if (transport.DoFakeNetworkErrors)
|
||||||
{
|
{
|
||||||
var floatHandle = GCHandle.Alloc((float)50, GCHandleType.Pinned);
|
var floatHandle = GCHandle.Alloc((float)50, GCHandleType.Pinned);
|
||||||
var intHandle = GCHandle.Alloc((int)500, GCHandleType.Pinned);
|
var intHandle = GCHandle.Alloc((int)100, GCHandleType.Pinned);
|
||||||
|
|
||||||
// global scope = dont apply to connection
|
// global scope = dont apply to connection
|
||||||
SteamNetworkingUtils.SetConfigValue(
|
SteamNetworkingUtils.SetConfigValue(
|
||||||
@ -88,101 +88,66 @@ public static class Util
|
|||||||
ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Float,
|
ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Float,
|
||||||
floatHandle.AddrOfPinnedObject()
|
floatHandle.AddrOfPinnedObject()
|
||||||
);
|
);
|
||||||
/*
|
|
||||||
result.Add(new SteamNetworkingConfigValue_t
|
|
||||||
{
|
|
||||||
m_eValue = ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketLoss_Send,
|
|
||||||
m_eDataType = ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Float,
|
|
||||||
m_val = new SteamNetworkingConfigValue_t.OptionValue
|
|
||||||
{
|
|
||||||
m_float = 50
|
|
||||||
}
|
|
||||||
});
|
|
||||||
result.Add(new SteamNetworkingConfigValue_t
|
|
||||||
{
|
|
||||||
m_eValue = ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketLoss_Recv,
|
|
||||||
m_eDataType = ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Float,
|
|
||||||
m_val = new SteamNetworkingConfigValue_t.OptionValue
|
|
||||||
{
|
|
||||||
m_float = 50
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
result.Add(new SteamNetworkingConfigValue_t
|
SteamNetworkingUtils.SetConfigValue(
|
||||||
{
|
ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketLag_Send,
|
||||||
m_eValue = ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketLag_Send,
|
ESteamNetworkingConfigScope.k_ESteamNetworkingConfig_Global,
|
||||||
m_eDataType = ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Int32,
|
IntPtr.Zero,
|
||||||
m_val = new SteamNetworkingConfigValue_t.OptionValue
|
ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Int32,
|
||||||
{
|
intHandle.AddrOfPinnedObject()
|
||||||
m_int32 = 500
|
);
|
||||||
}
|
SteamNetworkingUtils.SetConfigValue(
|
||||||
});
|
ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketLag_Recv,
|
||||||
result.Add(new SteamNetworkingConfigValue_t
|
ESteamNetworkingConfigScope.k_ESteamNetworkingConfig_Global,
|
||||||
{
|
IntPtr.Zero,
|
||||||
m_eValue = ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketLag_Recv,
|
ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Int32,
|
||||||
m_eDataType = ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Int32,
|
intHandle.AddrOfPinnedObject()
|
||||||
m_val = new SteamNetworkingConfigValue_t.OptionValue
|
);
|
||||||
{
|
|
||||||
m_int32 = 500
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
result.Add(new SteamNetworkingConfigValue_t
|
SteamNetworkingUtils.SetConfigValue(
|
||||||
{
|
ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketReorder_Send,
|
||||||
m_eValue = ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketReorder_Send,
|
ESteamNetworkingConfigScope.k_ESteamNetworkingConfig_Global,
|
||||||
m_eDataType = ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Float,
|
IntPtr.Zero,
|
||||||
m_val = new SteamNetworkingConfigValue_t.OptionValue
|
ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Float,
|
||||||
{
|
floatHandle.AddrOfPinnedObject()
|
||||||
m_float = 50
|
);
|
||||||
}
|
SteamNetworkingUtils.SetConfigValue(
|
||||||
});
|
ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketReorder_Recv,
|
||||||
result.Add(new SteamNetworkingConfigValue_t
|
ESteamNetworkingConfigScope.k_ESteamNetworkingConfig_Global,
|
||||||
{
|
IntPtr.Zero,
|
||||||
m_eValue = ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketReorder_Recv,
|
ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Float,
|
||||||
m_eDataType = ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Float,
|
floatHandle.AddrOfPinnedObject()
|
||||||
m_val = new SteamNetworkingConfigValue_t.OptionValue
|
);
|
||||||
{
|
SteamNetworkingUtils.SetConfigValue(
|
||||||
m_float = 50
|
ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketReorder_Time,
|
||||||
}
|
ESteamNetworkingConfigScope.k_ESteamNetworkingConfig_Global,
|
||||||
});
|
IntPtr.Zero,
|
||||||
result.Add(new SteamNetworkingConfigValue_t
|
ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Int32,
|
||||||
{
|
intHandle.AddrOfPinnedObject()
|
||||||
m_eValue = ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketReorder_Time,
|
);
|
||||||
m_eDataType = ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Int32,
|
|
||||||
m_val = new SteamNetworkingConfigValue_t.OptionValue
|
SteamNetworkingUtils.SetConfigValue(
|
||||||
{
|
ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketDup_Send,
|
||||||
m_int32 = 500
|
ESteamNetworkingConfigScope.k_ESteamNetworkingConfig_Global,
|
||||||
}
|
IntPtr.Zero,
|
||||||
});
|
ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Float,
|
||||||
|
floatHandle.AddrOfPinnedObject()
|
||||||
|
);
|
||||||
|
SteamNetworkingUtils.SetConfigValue(
|
||||||
|
ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketDup_Recv,
|
||||||
|
ESteamNetworkingConfigScope.k_ESteamNetworkingConfig_Global,
|
||||||
|
IntPtr.Zero,
|
||||||
|
ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Float,
|
||||||
|
floatHandle.AddrOfPinnedObject()
|
||||||
|
);
|
||||||
|
SteamNetworkingUtils.SetConfigValue(
|
||||||
|
ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketDup_TimeMax,
|
||||||
|
ESteamNetworkingConfigScope.k_ESteamNetworkingConfig_Global,
|
||||||
|
IntPtr.Zero,
|
||||||
|
ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Int32,
|
||||||
|
intHandle.AddrOfPinnedObject()
|
||||||
|
);
|
||||||
|
|
||||||
result.Add(new SteamNetworkingConfigValue_t
|
|
||||||
{
|
|
||||||
m_eValue = ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketDup_Send,
|
|
||||||
m_eDataType = ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Float,
|
|
||||||
m_val = new SteamNetworkingConfigValue_t.OptionValue
|
|
||||||
{
|
|
||||||
m_float = 50
|
|
||||||
}
|
|
||||||
});
|
|
||||||
result.Add(new SteamNetworkingConfigValue_t
|
|
||||||
{
|
|
||||||
m_eValue = ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketDup_Recv,
|
|
||||||
m_eDataType = ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Float,
|
|
||||||
m_val = new SteamNetworkingConfigValue_t.OptionValue
|
|
||||||
{
|
|
||||||
m_float = 50
|
|
||||||
}
|
|
||||||
});
|
|
||||||
result.Add(new SteamNetworkingConfigValue_t
|
|
||||||
{
|
|
||||||
m_eValue = ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketDup_TimeMax,
|
|
||||||
m_eDataType = ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Int32,
|
|
||||||
m_val = new SteamNetworkingConfigValue_t.OptionValue
|
|
||||||
{
|
|
||||||
m_int32 = 500
|
|
||||||
}
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
floatHandle.Free();
|
floatHandle.Free();
|
||||||
intHandle.Free();
|
intHandle.Free();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -73,12 +73,13 @@ public static class Program
|
|||||||
transport.TestIpAddress = "127.0.0.1:1234";
|
transport.TestIpAddress = "127.0.0.1:1234";
|
||||||
// make timeout for client detecting server drop different than timeout for server detecting client drop
|
// make timeout for client detecting server drop different than timeout for server detecting client drop
|
||||||
transport.Timeout = 5000;
|
transport.Timeout = 5000;
|
||||||
transport.DoFakeNetworkErrors = false;
|
transport.DoFakeNetworkErrors = true;
|
||||||
|
|
||||||
transport.OnServerError = (conn, error, s) => Console.Error.WriteLine($"ERROR {conn} {error} {s}");
|
transport.OnServerError = (conn, error, s) => Console.Error.WriteLine($"ERROR {conn} {error} {s}");
|
||||||
var theConn = -1;
|
var theConn = -1;
|
||||||
transport.OnServerConnected = conn => theConn = conn;
|
transport.OnServerConnected = conn => theConn = conn;
|
||||||
transport.OnServerDataReceived = (conn, bytes, i) => Console.WriteLine($"RECV {conn} {bytes.Join()} {i}");
|
transport.OnServerDataSent = (conn, bytes, i) => Console.WriteLine($"SEND {conn} {i} {bytes.Join()}");
|
||||||
|
transport.OnServerDataReceived = (conn, bytes, i) => Console.WriteLine($"RECV {conn} {i} {bytes.Join()}");
|
||||||
|
|
||||||
transport.ServerStart();
|
transport.ServerStart();
|
||||||
|
|
||||||
@ -94,7 +95,9 @@ public static class Program
|
|||||||
switch (Console.ReadKey(true).KeyChar)
|
switch (Console.ReadKey(true).KeyChar)
|
||||||
{
|
{
|
||||||
case 'q':
|
case 'q':
|
||||||
running = false;
|
// running = false;
|
||||||
|
transport.ServerDisconnect(theConn); // mirror does this for us
|
||||||
|
transport.ServerStop();
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
transport.ServerSend(theConn, new ArraySegment<byte>(new byte[] { 1, 2, 3, 4, 5 }, 1, 5 - 1));
|
transport.ServerSend(theConn, new ArraySegment<byte>(new byte[] { 1, 2, 3, 4, 5 }, 1, 5 - 1));
|
||||||
@ -125,7 +128,8 @@ public static class Program
|
|||||||
transport.DoFakeNetworkErrors = true;
|
transport.DoFakeNetworkErrors = true;
|
||||||
|
|
||||||
transport.OnClientError = (error, s) => Console.Error.WriteLine($"ERROR {error} {s}");
|
transport.OnClientError = (error, s) => Console.Error.WriteLine($"ERROR {error} {s}");
|
||||||
transport.OnClientDataReceived = (bytes, i) => Console.WriteLine($"RECV {bytes.Join()} {i}");
|
transport.OnClientDataSent = (bytes, i) => Console.WriteLine($"SEND {i} {bytes.Join()}");
|
||||||
|
transport.OnClientDataReceived = (bytes, i) => Console.WriteLine($"RECV {i} {bytes.Join()}");
|
||||||
|
|
||||||
transport.ClientConnect("76561198150564286");
|
transport.ClientConnect("76561198150564286");
|
||||||
|
|
||||||
@ -134,7 +138,7 @@ public static class Program
|
|||||||
Console.WriteLine("press q to quit, s to send");
|
Console.WriteLine("press q to quit, s to send");
|
||||||
|
|
||||||
var running = true;
|
var running = true;
|
||||||
transport.OnClientDisconnected = () => running = false; // mirror normally does this
|
// transport.OnClientDisconnected = () => running = false; // mirror normally does this
|
||||||
while (running)
|
while (running)
|
||||||
{
|
{
|
||||||
transport.ClientEarlyUpdate();
|
transport.ClientEarlyUpdate();
|
||||||
@ -143,7 +147,8 @@ public static class Program
|
|||||||
switch (Console.ReadKey(true).KeyChar)
|
switch (Console.ReadKey(true).KeyChar)
|
||||||
{
|
{
|
||||||
case 'q':
|
case 'q':
|
||||||
running = false;
|
// running = false;
|
||||||
|
transport.ClientDisconnect();
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
transport.ClientSend(new ArraySegment<byte>(new byte[] { 1, 2, 3, 4, 5 }, 1, 5 - 1));
|
transport.ClientSend(new ArraySegment<byte>(new byte[] { 1, 2, 3, 4, 5 }, 1, 5 - 1));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user