2011-03-22 243 views
1

我收到以下異常在我的代碼: enter image description here拒絕連接?

我無法理解這種異常的原因...

這裏是我的代碼: {

import java.net.*; 
import java.io.*; 
class whois { 
    public static void main(String args[])throws Exception { 
    int c; 
    Socket s=new Socket("internic.net",43); 
    InputStream in=s.getInputStream(); 
    OutputStream out=s.getOutputStream(); 
    String str=(args.length==0 ? "webopedia.com" : args[0])+"\n"; 
    byte buf[]=str.getBytes(); 
    out.write(buf); 
    while((c=in.read())!=-1) { 
    System.out.print((char)c); 
    } 
    s.close(); 
    } 
    } 
} 

請告訴這個例外的原因。

+0

如果您使用帶有運行按鈕的IDE或編輯器(如scite),您可以在一個漂亮的窗口中獲得輸出,您可以在其中使用鼠標抓住它,無需爲文本輸出製作截圖。 – 2011-03-22 10:48:54

+0

我認爲即使在Windows外殼允許複製+粘貼文本。 – 2011-03-22 23:19:19

回答

7

簡而言之:您無法連接當前客戶端的端口43上的internic.net。服務器端口不可用,防火牆阻止通信或客戶端無法解析服務器的符號名稱。

+0

+1:根本解決不了地址會導致不同的錯誤。如果它不正確地解析地址,則可能會出現此錯誤。我試圖telnet自己不相信這個服務正在運行在這個服務器上(或者你不能訪問它) – 2011-03-22 10:47:45

+0

那麼應該是什麼端口號? – 2011-03-22 10:50:56

+1

他會怎麼知道?你想要訪問什麼樣的服務? – chzbrgla 2011-03-22 10:52:44

5

我做了一些挖掘。端口43是WHOIS服務,您應該使用「whois.internic.net」作爲WHOIS服務的Internic實例的主機名。


目前我得到「沒有路線主辦」爲whois.internic.net ...

我的結論是,在whois.internic.net主機和/或服務在不可靠此時此刻。我建議你改用「http://internic.net/whois.html」中的搜索表單。


上面的搜索表單沒有給出信息「www.webopedia.com」 ...因爲它沒有關於該域的信息!但它有關於「webopedia.com」的信息。這對我來說很有意義:

  • 「webopedia.com」是與一些域名註冊商註冊的「.COM」域名服務器提供服務的主域名。它具有WHOIS信息。

  • 「www.webopedia.com」是一個子域名,其DNS信息由運行「webopedia.com」的人員提供。往上看。

這一切都是通過查看這兩個名稱的DNS記錄來確認的。使用或等效的Windows工具查看DNS記錄。

總之,你的程序是說實話的...當它工作。

+0

現在我的程序不會給exception.But在這種情況下的任何網址(webopedia.com),它說不匹配:www.webopedia.com爲什麼這樣? – 2011-03-22 17:53:53