为什么我收到ArgumentNullException通知,如何解决?

时间:2017-01-28 15:11:34

标签: c# sockets ip

我正在尝试为学校完成一个项目,该项目涉及我提示用户输入IP地址,然后显示与之关联的主机名。我是C#的新手。

这是我到目前为止的代码:

        Console.WriteLine("Enter an IP address:"); //prompt user to input IP address
        string host = Console.ReadLine();
        IPHostEntry hostEntry;


        hostEntry = NewMethod(host);

        if (hostEntry.AddressList.Length > 0)
        {
            var ip = hostEntry.AddressList[0];
            Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
            s.Connect(ip, 80);
        }
    }

    private static IPHostEntry NewMethod(string host)
    {
        return Dns.GetHostEntry(host); // NEED FIX
    }
}

具有“需要修复”的部分是出现错误的地方。提前致谢!

编辑:我如何能够以这种格式显示结果:“xxxx的主机名是:hhhhhh”,其中'xxxx'是用户输入的IP地址,'hhhhh'是IP的主机名?

EDIT(对于StackOverflow):我的问题对于此实例更具体,并且不是关于NullException问题的一般性问题。

1 个答案:

答案 0 :(得分:0)

host永远不会设置,因此您将null传递给生成异常的Dns.GetHostEntry

在程序开始时,您似乎需要从用户那里读取IP地址:

Console.WriteLine("Enter an IP address:"); //prompt user to input IP address
string host = Console.ReadLine();