2013-12-15 56 views
-2

這是我的服務器創建的代碼 -異常在線程「主要」的java.net.UnknownHostException:本地主機

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

class ServerCreation { 
    public static void main(String[] args) throws IOException { 
     ServerSocket server = new ServerSocket(1234); 
     System.out.println("Server created, waiting for client"); 
     Socket socket = server.accept(); 
     System.out.println(" Client has connected"); 

    } 
} 

這是我的客戶端代碼 -

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

class ServerClient { 
public static void main(String argv[]) throws IOException { 
    try { 
    Socket clientSocket = new Socket("localhost", 1234); 
    } 
    catch (UnknownHostException e) 
    { 
     System.err.println("Couldn't find Host"); 
    } 
    } 
} 

當我嘗試運行我的客戶代碼,我得到以下錯誤:

Exception in thread "main" java.net.UnknownHostException: localhost 
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:223) 
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:431) 
at java.net.Socket.connect(Socket.java:527) 
at java.net.Socket.connect(Socket.java:476) 
at java.net.Socket.<init>(Socket.java:373) 
at java.net.Socket.<init>(Socket.java:187) 
at ServerClient.main(ServerClient.java:6) 

我試圖ping我的本地主機,它工作正常。不知道發生了什麼事。請幫忙。

+2

單獨的代碼無法產生輸出,您正在捕獲該異常。有沒有更多的代碼? – Keppil

+0

是不是有太多空間? '「localhost」'而不是'「localhost」' – Messa

+0

運行客戶端代碼時,服務器代碼是否正在運行?您需要在客戶端代碼之前運行服務器代碼 – vivek

回答

3

如果您想使用local作爲主機名,您需要在您的DNS中包含它或您承載文件。正確的語法是localhost127.0.0.1或您的IP。

0

更好地使用網絡的IP地址。本地主機使用 ,使用 套接字s =新套接字(「127.0.0.1」,1234);

相關問題