2011-08-22 30 views
0

我試圖創建一個新的套接字,但它一直尋找一個IO異常,說如何調試Java套接字創建錯誤

無法獲取連接到I/O:本地主機。

這裏是我的代碼片段:

Socket mySocket = null; 
    BufferedReader in = null; 

try{ 
    mySocket = new Socket("localhost",4444); 
    in = new BufferedReader(new InputStreamReader(mySocket.getInputStream())); 
} catch (UnknownHostException e) { 
    System.err.println("Don't know about host: localhost."); 
    System.exit(1); 
} catch (IOException e) { 
    System.err.println("Couldn't get the I/O for " + "the connection to: localhost."); 
    System.exit(1); 
} 

我試圖改變我的主機名「localhost」改成也是我的主機名我的電腦(即打字主機名在cmd中找到主機名)。還嘗試了另一個端口,但它一直給我同樣的錯誤。有什麼提示或方法來調試呢?或者你能找出問題所在?感謝您的幫助。

+2

我不認爲你可以訪問輸入流,直到套接字連接。也就是說,您還需要一些在該端口上偵聽的服務器。 – sje397

回答

2

這意味着沒有人正在監聽機器上的端口4444。插座是具有2個邊的通道連接器:插座。通常服務器端有一個ServerSocket,客戶端有一個Socket。

+0

嗯我試圖在客戶端使用Socket來偵聽tcp數據來自已經編譯爲jar的另一個應用程序。我想從你的評論這是不可能的,除非我以某種方式配置的應用程序是一個jar文件有一個ServerSocket以及?希望這是有道理的。 –

+0

@O_O AlexR是對的。您必須爲服務器應用程序配置ServerSocket,以便您能夠接收客戶端請求。 –