当我尝试检查端口的可用性时,我收到错误代码10061

时间:2015-09-30 07:17:03

标签: c# sockets port

我试图在下面的C#代码的帮助下找到端口可用性,我得到异常“错误代码10061:连接被拒绝”需要一些帮助来解决这个问题。 打开的端口也显示为关闭,所以我面对这个问题

class Program
{
    private string _HostURI;
    private static bool m_blnIsWinAuth = false;

    static void Main(string[] args)
    {
        Hostname tcp;
        bool udp = false;
        Program pr = new Program();
        tcp = pr.GetPortAvability("127.0.0.1", 80, true);
        Console.WriteLine(tcp);
        Console.ReadLine();
    }

    public Hostname GetPortAvability(string _HostURI, int _PortNumber, bool isTCP)
    {
        Hostname returnValue = new Hostname();
        returnValue.HostName = _HostURI;
        returnValue.Result = false;

        IPAddress ipa = (IPAddress)Dns.GetHostAddresses(_HostURI)[0];

        try
        {
            Socket sock;
             if (isTCP)
                sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            else
                sock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

            sock.Connect(ipa, _PortNumber);

            if (sock.Connected)
                returnValue.Result = true;
            else
                returnValue.Result = false;

            sock.Close();
        }
        catch (SocketException se)
        {
            if (se.ErrorCode == 10061)
                returnValue.Result = true;
            else
                returnValue.Result = false;
        }
        catch (Exception e)
        {
            returnValue.Result = false;
        }

        return returnValue;       
    }
}

1 个答案:

答案 0 :(得分:0)

错误10061是服务器拒绝连接 这对我来说很有意义,因为您正在尝试连接到具有给定IP地址和端口号的套接字。但没有其他套接字等待连接 你需要找到一种不同的方式。寻找'端点'。