2011-09-21 92 views
0

我正在開發高度面向對象的解決方案(即,我希望儘可能少的耦合,大量的可重用性和模塊化代碼,良好的設計模式使用,清潔代碼等)。我目前正在實現應用程序的客戶端 - 服務器方面,而我是新手。我知道如何使用套接字,以及如何發送流並接收它們。但是,我不確定如何設計我的解決方案。Java TCP服務器 - 客戶端設計解決方案

TCP Java解決方案有哪些模式(如果有)?我將通過網絡發送大量序列化對象,如何處理不同的請求/對象?實際上,我如何處理請求本身?我是否將每個發送給另一個對象的對象都包裹起來,然後當對象到達時,我將它解析爲「命令/請求」,然後處理相應內包含的對象?這是我一直在努力的一般設計。

所有在線教程似乎都是發送客戶端發送文本的bog標準回顯服務器。這些僅在瞭解實際套接字時纔有用,但在應用於實際情況時無用。大量的病例陳述和陳述只是看起來很糟糕的發展。有任何想法嗎?在這個階段我寧願不使用框架。

乾杯,

Tim。

回答

3

考慮使用更高級別的協議,然後使用TCP/IP,不要重新發明輪子。 rmi是一個不錯的選擇,你應該能夠找到很好的教程。

+5

+1:如果你打算重新發明車輪,確保它有一個更好的車輪,值得額外的努力。 –

1

我建議你要麼使用RMI,要麼詳細看它,這樣你就可以確定你將如何做不同的事情。至少我建議你在嘗試自己做之前先玩RMI來看看它是如何工作的。

0

如果高性能和低延遲不是主要要求,那麼就使用現有的解決方案。 如果您決定使用rmi而不是考慮在EJB中使用J2EE--它將爲您提供rmi之上的事務管理。

否則,如果您需要極低的延遲,請查看使用tcp上的自定義協議的現有解決方案的來源。 例如,OpenChord發送序列化的Request和Response對象,Project Voldemort使用自定義消息進行少量操作。