diff --git a/Facepunch.Steamworks.Test/NetworkingSockets.cs b/Facepunch.Steamworks.Test/NetworkingSockets.cs index cbf77ad..59dad4e 100644 --- a/Facepunch.Steamworks.Test/NetworkingSockets.cs +++ b/Facepunch.Steamworks.Test/NetworkingSockets.cs @@ -51,6 +51,24 @@ namespace Steamworks si.Close(); } + [TestMethod] + public async Task CreateRelayServerFakeIP() + { + SteamNetworkingUtils.DebugLevel = NetDebugOutput.Everything; + SteamNetworkingUtils.OnDebugOutput += DebugOutput; + + SteamNetworkingSockets.RequestFakeIP(); + + var si = SteamNetworkingSockets.CreateRelaySocketFakeIP(); + + Console.WriteLine( $"Created Socket: {si}" ); + + // Give it a second for something to happen + await Task.Delay( 1000 ); + + si.Close(); + } + [TestMethod] public async Task RelayEndtoEnd() { @@ -102,6 +120,36 @@ namespace Steamworks await Task.WhenAll( server, client ); } + [TestMethod] + public async Task RelayEndtoEndFakeIP() + { + SteamNetworkingUtils.InitRelayNetworkAccess(); + SteamNetworkingUtils.DebugLevel = NetDebugOutput.Warning; + SteamNetworkingUtils.OnDebugOutput += DebugOutput; + + // For some reason giving steam a couple of seconds here + // seems to prevent it returning null connections from ConnectNormal + await Task.Delay( 2000 ); + + Console.WriteLine( $"----- Requesting Fake IP.." ); + SteamNetworkingSockets.RequestFakeIP(); + + Console.WriteLine( $"----- Creating Socket Relay Socket.." ); + var socket = SteamNetworkingSockets.CreateRelaySocketFakeIP(); + var server = socket.RunAsync(); + + await Task.Delay( 1000 ); + + Console.WriteLine( $"----- Retrieving Fake IP.." ); + SteamNetworkingSockets.GetFakeIP( 0, out NetAddress address ); + + Console.WriteLine( $"----- Connecting To Socket via Fake IP ({address})" ); + var connection = SteamNetworkingSockets.ConnectNormal( address ); + var client = connection.RunAsync(); + + await Task.WhenAll( server, client ); + } + [TestMethod] public void NetAddressTest() { @@ -117,4 +165,4 @@ namespace Steamworks } } -} \ No newline at end of file +}