2011-08-27 127 views
0

運行下面的代碼給予例外:無法連接到端口7

d:\書籍\教程\網絡\插座\實例>的Java EchoClient 拒絕連接:連接

這實際上是從java教程的代碼(從oracle) 我甚至嘗試從防火牆打開icmp eco請求,任何人都可以解釋爲什麼這是哈特?我正在使用Windows 7 32位

import java.io.*; 
import java.net.*; 

public class EchoClient { 
    public static void main(String[] args) throws Exception { 
     Socket echoSocket = null; 
     PrintWriter out = null; 
     BufferedReader in = null; 
     try { 
      echoSocket = new Socket("localhost", 7); 
      out = new PrintWriter(echoSocket.getOutputStream(), true); 
      in = new BufferedReader(new InputStreamReader(
             echoSocket.getInputStream())); 
     } catch (Exception e) { 
      System.err.println(e.getMessage()); 
      System.exit(1); 
     } 

    BufferedReader stdIn = new BufferedReader(
            new InputStreamReader(System.in)); 
    String userInput; 

    while ((userInput = stdIn.readLine()) != null) { 
     out.println(userInput); 
     System.out.println("echo: " + in.readLine()); 
    } 

    out.close(); 
    in.close(); 
    stdIn.close(); 
    echoSocket.close(); 
    } 
} 

回答

1

無論如何,在Unix機器上,您必須擁有超級用戶權限(大致等同於Windows上的管理員權限)才能打開小於1024的端口號用於偵聽。您可能會遇到Windows上的等效問題。另一方面,仔細觀察代碼表明您正試圖將其作爲客戶端連接到客戶端,而不需要提升特權。

也許麻煩的是沒有服務(守護進程)監聽端口 - 所以沒有什麼可以響應你的迴應請求?

+0

嘿,我讀了端口7是回聲端口的地方,我甚至嘗試添加防火牆例外,但它仍然不工作 – lol

+0

我修改了我的答案 - 也許麻煩的是,你沒有配置回聲服務。 –

+0

k如何配置呢? – lol

相關問題