diff --git a/SteamTransport/Util.cs b/SteamTransport/Util.cs index 2d1c2d19..8059f9fb 100644 --- a/SteamTransport/Util.cs +++ b/SteamTransport/Util.cs @@ -71,7 +71,7 @@ public static class Util if (transport.DoFakeNetworkErrors) { 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 SteamNetworkingUtils.SetConfigValue( @@ -88,101 +88,66 @@ public static class Util ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Float, 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 - { - m_eValue = ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketLag_Send, - m_eDataType = ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Int32, - m_val = new SteamNetworkingConfigValue_t.OptionValue - { - m_int32 = 500 - } - }); - result.Add(new SteamNetworkingConfigValue_t - { - m_eValue = ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketLag_Recv, - m_eDataType = ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Int32, - m_val = new SteamNetworkingConfigValue_t.OptionValue - { - m_int32 = 500 - } - }); + SteamNetworkingUtils.SetConfigValue( + ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketLag_Send, + ESteamNetworkingConfigScope.k_ESteamNetworkingConfig_Global, + IntPtr.Zero, + ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Int32, + intHandle.AddrOfPinnedObject() + ); + SteamNetworkingUtils.SetConfigValue( + ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketLag_Recv, + ESteamNetworkingConfigScope.k_ESteamNetworkingConfig_Global, + IntPtr.Zero, + ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Int32, + intHandle.AddrOfPinnedObject() + ); - result.Add(new SteamNetworkingConfigValue_t - { - m_eValue = ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketReorder_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_FakePacketReorder_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_FakePacketReorder_Time, - m_eDataType = ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Int32, - m_val = new SteamNetworkingConfigValue_t.OptionValue - { - m_int32 = 500 - } - }); + SteamNetworkingUtils.SetConfigValue( + ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketReorder_Send, + ESteamNetworkingConfigScope.k_ESteamNetworkingConfig_Global, + IntPtr.Zero, + ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Float, + floatHandle.AddrOfPinnedObject() + ); + SteamNetworkingUtils.SetConfigValue( + ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketReorder_Recv, + ESteamNetworkingConfigScope.k_ESteamNetworkingConfig_Global, + IntPtr.Zero, + ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Float, + floatHandle.AddrOfPinnedObject() + ); + SteamNetworkingUtils.SetConfigValue( + ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketReorder_Time, + ESteamNetworkingConfigScope.k_ESteamNetworkingConfig_Global, + IntPtr.Zero, + ESteamNetworkingConfigDataType.k_ESteamNetworkingConfig_Int32, + intHandle.AddrOfPinnedObject() + ); + + SteamNetworkingUtils.SetConfigValue( + ESteamNetworkingConfigValue.k_ESteamNetworkingConfig_FakePacketDup_Send, + 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(); intHandle.Free(); } diff --git a/SteamTransportTest/Program.cs b/SteamTransportTest/Program.cs index d5f2fc10..abd0ba6e 100644 --- a/SteamTransportTest/Program.cs +++ b/SteamTransportTest/Program.cs @@ -73,12 +73,13 @@ public static class Program transport.TestIpAddress = "127.0.0.1:1234"; // make timeout for client detecting server drop different than timeout for server detecting client drop transport.Timeout = 5000; - transport.DoFakeNetworkErrors = false; + transport.DoFakeNetworkErrors = true; transport.OnServerError = (conn, error, s) => Console.Error.WriteLine($"ERROR {conn} {error} {s}"); var theConn = -1; 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(); @@ -94,7 +95,9 @@ public static class Program switch (Console.ReadKey(true).KeyChar) { case 'q': - running = false; + // running = false; + transport.ServerDisconnect(theConn); // mirror does this for us + transport.ServerStop(); break; case 's': transport.ServerSend(theConn, new ArraySegment(new byte[] { 1, 2, 3, 4, 5 }, 1, 5 - 1)); @@ -125,7 +128,8 @@ public static class Program transport.DoFakeNetworkErrors = true; 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"); @@ -134,7 +138,7 @@ public static class Program Console.WriteLine("press q to quit, s to send"); var running = true; - transport.OnClientDisconnected = () => running = false; // mirror normally does this + // transport.OnClientDisconnected = () => running = false; // mirror normally does this while (running) { transport.ClientEarlyUpdate(); @@ -143,7 +147,8 @@ public static class Program switch (Console.ReadKey(true).KeyChar) { case 'q': - running = false; + // running = false; + transport.ClientDisconnect(); break; case 's': transport.ClientSend(new ArraySegment(new byte[] { 1, 2, 3, 4, 5 }, 1, 5 - 1));