2014-01-20 52 views
0

我嘗試了Oracle提供的示例,但是當我運行該程序(通過Windows 7 CMD)時,出現以下錯誤:「不知道主機」 +主機名java中的客戶端/套接字 - 客戶端錯誤

的代碼看起來是這樣的(完全一樣Oracle提供的一個):

KnockKnockClient http://docs.oracle.com/javase/tutorial/networking/sockets/examples/KnockKnockClient.java

KnockKnockServer http://docs.oracle.com/javase/tutorial/networking/sockets/examples/KnockKnockServer.java

KnockKnockProtocol並不重要,但它也在那裏。

我不知道爲什麼我得到每一次例外......

我按照上述同樣的鏈接運行程序。

問候

+0

你是否在同一個主機上運行這兩個進程(即使用'hostName' localhost)? – andersschuller

+0

你如何運行這些應用程序?哪些參數? – molokoV

+0

是的,如果是主人,你的意思是來自同一臺計算機。我有兩個不同的cmd窗口,我從一個啓動客戶端,另一個啓動客戶端。 我運行的程序是這樣的: 的Java KnockKnockServer 4444 的Java KnockKnockClient test.example.com 4444 – user2990057

回答

0

當然,你正在運行沒有給出的任何參數的應用程序。

參數程序期望:
服務器:

Usage: java KnockKnockServer <port number> 

客戶:

Usage: java EchoClient <host name> <port number> 

示例參數的可能:
服務器:
下從命令行運行:

java KnockKnockServer 55555 

從IDE運行:

55555 

客戶:
下從命令行運行:

java EchoClient localhost 55555 

從IDE運行:

localhost 55555 

編輯,也是初學者的解決方案。

變化:

Change String hostName = args[0]; 
int portNumber = Integer.parseInt(args[1]); 

要:

String hostName = "localhost"; 
int portNumber = 55555; 

在客戶端類,你只需要改變portNumber,因爲它是唯一的表現(在用)。

+0

不,我不是。我在客戶端寫入端口號和主機名,並在服務器端寫入端口號... – user2990057

+0

@ user2990057,您正在使用哪個IDE? Eclipse .. IntelliJ .. NetBeans? –

+0

我使用Eclipse,但是我從Windows 7提供的終端窗口運行該程序。我甚至不知道如何從Eclipse中運行它... – user2990057