2010-01-28 46 views
3

我聽說存在二進制通信。我是java的初學者,我使用純文本,我從java.sun.com學習套接字教程。所以我想知道二進制插件有什麼好處?爲什麼我應該使用它?你可以建議關於二進制通信的資源?二進制與非二進制強化java

回答

1

如果您有特定的原因這樣做,您只能直接在套接字上使用二進制數據 - 例如極高的性能。如果你有這樣一個原因,你會知道它,並通過套接字直接使用二進制數據並不能保證高性能。

在Java中提供了許多抽象和圖書館,以方便網絡通信,同時保護程序從勞動密集型和容易出錯的工作在低級別:

只是一些例子。

2

通過套接字發送二進制數據顯然會在帶寬使用方面更有效率。但是,這也增加了必須在套接字上封送和解組數據的複雜性。在性能不重要的情況下,發送文本數據(XML,JSON等)更直觀,更易於在許多情況下進行開發。

+1

更何況,更容易調試。因爲你可以嗅探數據包,而且內容是人類可讀的。 – Matt 2010-01-28 00:44:46

+0

這絕對是真的。 – 2010-01-28 00:47:29

3

我建議你看看Object stream,它允許通過Socket連接從一個Java VM到另一個Java VM的簡單二進制傳遞(如果需要,通過網絡)Objects

Java Sun教程是一個很好的開始資源。請參閱Basic I/O section

1

正如其他答案中提到的,除非絕對必要,否則應該避免原始套接字通信。我建議將XML作爲通信數據格式而不是對象,因爲它允許您根據需要輕鬆地與運行其他語言的客戶端進行通信,並且更易於調試。 XStream是一個偉大的庫,用於以最少的支持代碼方便對象< - > xml轉換。

+0

謝謝你的建議! – 2010-01-28 14:46:12