使用C#的可用TCP端口探测

Yoa*_*. B 5 c#

如何探测可用的TCP端口以便以编程方式配置WCF服务端点?

ama*_*int 3

如果您动态选择服务器端口,您的客户端将如何了解端点?

反正,

这是一种探测开放端口的肮脏方法

 for (int port = 2000; port < 65535; port++) 
                   {
                   IPEndPoint ep = new IPEndPoint(IPAddress.Any, port);
                   Socket socket = new Socket(AddressFamily.InterNetwork, st, pt);

                   try { 
                         socket.Bind(ep);
                         socket.Close();  
                         //Port available
                        } 
                   catch (SocketException)
                        {
                        Debug.WriteLine("Port not available {0}", port);
                        } 

                   }
Run Code Online (Sandbox Code Playgroud)

然后,尝试创建自定义服务主机..

http://msdn.microsoft.com/en-us/library/aa395224.aspx