2012-07-27 48 views
0

我想構建一個聊天應用程序,並且對決定是使用套接字還是使用RMI構建應用程序感到困惑。我聽說RMI很難通過互聯網進行配置和部署,因爲這是我的意圖,我想知道什麼更合適,套接字或RMI。由於套接字或RMI中的NAT,解決問題更容易嗎?聊天應用程序,套接字與RMI

如果我想在稍後的時間添加語音支持怎麼辦?它有助於決定走哪條路?

+0

插座。我有一個樣品,如果你願意的話。只需一個簡單的用戶名命令行聊天。 – 2012-07-27 17:46:27

+1

套接字在Java中簡單易用,並且堅持使用它們。 – Shark 2012-07-27 17:47:33

+0

感謝亨利,但我主要是爲了學習,所以會嘗試從頭開始構建它,但如果將來我可以問你任何問題。 – comatose 2012-07-27 17:54:00

回答

2

對於像聊天信使應用,我賭注將是Sockets.

2.RMI將是一個過在這裏殺死

此外NAT問題SocketRMI其約靜態IP。

4.如果你想在網絡中部署一個聊天服務器,然後首先你必須有一個靜態IP,你需要有要求你的ISP的額外費用爲您提供他們中的一個,或者互聯網上有網站,這會使您的動態IPS成爲靜態。

5.但是,如果你的服務器是位於本地的局域網環境中,那麼我認爲你不會做這件事有問題。

1

這兩個都是可以用來構建聊天服務器/客戶端的合理選擇。可以設置一個套接字來接收傳入連接,併爲每個「chatter」啓動一個新線程。RMI可以用來創建一個客戶端可以調用方法的分佈式對象。

RMI基本上是分佈式計算中經常使用的套接字層,需要一些透明性並需要調用遠程方法。它也允許無狀態連接到服務器。

如果您選擇在RMI中實施服務器,只需要警告線程安全可能成爲問題。

對於本地服務器,它可能更容易使用純套接字。

有關RMI的更多詳細信息: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136424.html

+0

無論如何,線程安全是服務器中的一個問題。 RMI沒有增加任何東西,也沒有帶走任何東西。 – EJP 2012-07-30 09:53:17