wasSharpNET

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 8  →  ?path2? @ 9
/Network/TCP/Utilities.cs
@@ -0,0 +1,40 @@
///////////////////////////////////////////////////////////////////////////
// Copyright (C) Wizardry and Steamworks 2016 - License: GNU GPLv3 //
// Please see: http://www.gnu.org/licenses/gpl.html for legal details, //
// rights of fair usage, the disclaimer and warranty conditions. //
///////////////////////////////////////////////////////////////////////////
 
using System.Net;
using System.Net.Sockets;
 
namespace wasSharpNET.Network.TCP
{
public static class Utilities
{
///////////////////////////////////////////////////////////////////////////
// Copyright (C) 2016 Wizardry and Steamworks - License: GNU GPLv3 //
///////////////////////////////////////////////////////////////////////////
/// <summary>
/// Try to find an unused port.
/// </summary>
/// <param name="address">the address associated with the port</param>
/// <param name="port">an integer to hold the port if found</param>
/// <returns>true if an unused port could be found</returns>
public static bool TryGetUnusedPort(IPAddress address, out int port)
{
try
{
var l = new TcpListener(address, 0);
l.Start();
port = ((IPEndPoint) l.LocalEndpoint).Port;
l.Stop();
return true;
}
catch
{
port = default(int);
return false;
}
}
}
}