2017-01-28 11 views
-2

私は、IPアドレスの入力を求めるプロンプトが表示され、それに関連付けられているホスト名が表示されている学校のプロジェクトを完了しようとしています。私はC#で新しいです。なぜArgumentNullException通知が表示されるのですか?どのように解決できますか?

これは私がこれまで持っている私のコードです:エラーが現れている場合、「修正が必要」がある

 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 
    } 
} 

部分があります。前もって感謝します!

EDIT:「xxxxのホスト名はhhhhhh」の形式で結果を表示するにはどうすればよいですか?「xxxx」はユーザーが入力したIPアドレス、「hhhhh」はIPのホスト名です?

EDIT(for StackOverflow):私の質問は、このインスタンスに固有のものであり、NullExceptionの問題に関する一般的な質問ではありません。

+0

さてあなたが入力をユーザに促すされ、その後、あなたが何を求めていません:あなたは、ユーザーからのIPアドレスを読み取る必要があるように見えるあなたのプログラムの開始時に

。 'NewMethod'を呼び出すと' host'が 'null'になります – InBetween

+0

[NullReferenceExceptionとは何か、どうすれば修正できますか?](http://stackoverflow.com/questions/4660142/what-is-a- – InBetween

+0

@InBetween、なぜそれが重複していないのかを指定し、それを変更してユーザ入力を読み込むようにしました。ありがとう! – Ryderius

答えて

0

hostは設定されないため、例外を生成するnullにはDns.GetHostEntryが渡されます。

Console.WriteLine("Enter an IP address:"); //prompt user to input IP address 
string host = Console.ReadLine(); 
関連する問題