2011-05-03 85 views
0

請原諒我的無所作爲,因爲我自學Java並不知道很多。我試圖做一個從Java小程序運行的多人遊戲,我有一個服務器端程序工作,將接受字符串的文本,但我所有的嘗試找到小程序的代碼都失敗了。我怎樣才能讓一個Java applet連接服務器?

我最好的嘗試看起來像它的工作,但我認爲未能連接到服務器,任何想法爲什麼? (localIP是我正確的IP和其他測試正常工作)

public void init() 
{ 
    try 
    { 
     socket = new Socket(localIP, 5555); 
     inStream = new DataInputStream(socket.getInputStream()); 
     outStream = new PrintStream(socket.getOutputStream()); 
    } 
    catch(Exception e) 
    { 
    never reached 
    } 
} 

我不介意殺這個,如果有人能告訴我一個更好的辦法來做到這一點或根本任何方式。

+0

'但我認爲無法連接到服務器,「運行此代碼時發生了什麼? – 2011-05-03 02:28:09

+0

該程序未能提供任何錯誤並運行,如果它已經工作,服務器也不接受任何事情。 – candydave 2011-05-03 03:27:42

回答

0

一個java小應用程序只能連接到它下載的服務器。如果您沒有從localIP加載小程序,那麼您將無法連接到它。

您可以通過簽署小程序來避開此限制。

0

鑑於您沒有使用Http協議,One假定該applet是從5555以外的另一個端口加載的。如果是這種情況,則需要對applet進行簽名才能執行此功能。

+0

考慮到你們都說這個接口是強加的,網頁自然會在端口80上,而這個端口已經被我的虛擬主機程序綁定了,我怎麼能在同一個端口上運行一個服務器呢? 或者有沒有辦法來僞造這個? – candydave 2011-05-03 03:25:05

+0

添加一個servlet來處理applet將通過的一些上下文。 Applet將使用HttpURLConnection(和HttpProtocol)從applet執行Http Get或Http Posts。 – MeBigFatGuy 2011-05-03 03:27:18

+0

如果您的託管公司不支持基於java服務器的編碼,並且您只是從中加載applet,然後連接到另一臺服務器,那麼您仍然可以執行該操作,該applet只需要進行簽名,您可以執行此操作你自己。 – MeBigFatGuy 2011-05-03 03:30:22