簡體   English   中英

ConnectException:操作超時

[英]ConnectException: operation timed out

我有以下類打開套接字連接來查詢WHOIS服務器。 不幸的是,每次我運行它(例如java WHOIS google.com)時,它總是拋出異常:

Contacting the WHOIS server for 'google.com' at whois.internic.net:43
Exception in thread "main" java.net.ConnectException: Operation timed out
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
    at java.net.Socket.connect(Socket.java:529)
    at java.net.Socket.connect(Socket.java:478)
    at java.net.Socket.<init>(Socket.java:375)
    at java.net.Socket.<init>(Socket.java:189)
    at WHOIS.performWhoisQuery(WHOIS.java:11)
    at WHOIS.main(WHOIS.java:28)

問題似乎是連接超時,我嘗試將超時設置為更長的值(例如5000)並且它不起作用。 它與代理和/或防火牆有關嗎? 我整天都陷入困境。

public class WHOIS {
    public static void performWhoisQuery(String host, int port, String query) throws Exception {
        System.out.println(" Contacting the WHOIS server for '" + query + "' at " + host + ":" + port);

        Socket socket = new Socket(host, port);

        InputStreamReader isr = new InputStreamReader(socket.getInputStream());
        BufferedReader br = new BufferedReader(isr);

        PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
        out.println(query);

        String aLine = "";
        while ((aLine = br.readLine()) != null) {
            System.out.println(aLine);
        }
    }

    public static void main(String[] args) throws Exception {
        String domainNameToCheck = args[0];
        performWhoisQuery("whois.internic.net", 43, domainNameToCheck);

    }

}

檢查是否是防火牆問題的一種簡單方法是使用telnet從同一台計算機連接到目標主機/端口。

例如,在我的Linux機器上:

 aix@aix:~$ telnet whois.internic.net 43 Trying 199.7.57.74... Connected to whois.internic.net. Escape character is '^]'. 

如果您能夠連接,那么問題在於您的Java程序。 否則問題出在其他地方(防火牆等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM