簡體   English   中英

使用 Sockets 在客戶端-服務器應用程序中發送數據的最佳方式

[英]Best way to send data in a client-server App using Sockets

嗨,我想做的是客戶端上的 Swing 應用程序(使用套接字)執行某些操作,以及服務器的另一個應用程序(使用 serverSocket)根據請求執行所有數據庫工作。我已閱讀有關 sockets以及如何使用它們,我主要關心的是哪種方式是發送數據的最佳方式。

假設我有一個用戶集合,我想將其發送給客戶端進行顯示。發送它的最佳方式是什么?我考慮過序列化集合並將其發送給客戶端,但我無法轉換為類型(java.util.ArrayList)(只是一個例子)因為我不知道客戶端應用程序中的用戶 class,我無法訪問用戶的特定方法。這就提出了一個問題:我應該知道用戶在客戶端應用程序? 所以任何建議都是好的。

PS。 對於數據檢索,我使用 Hibernate。

為了能夠反序列化 object,您需要在類路徑中有 object(以及遞歸地,對象引用的所有對象)的具體 class。 所以是的,客戶端在其類路徑中需要用戶 class。

您是否考慮過使用RMI而不是使用普通的 sockets? 這可能會容易得多。

要擴展@JB Nizet,RMI 會更容易。 JMX 會更容易。 Web 服務會容易得多。

基本上,對於絕大多數用例來說,這個問題已經“解決”了,你應該關注那些技術和框架,而不是原始的 sockets。 除非您有真正特定的需求(而且最根本沒有),否則 sockets 是浪費時間。

Web 服務、HTTP 上的 POX、遠程 EJB、遠程 JMX、RMI 以及其他一切為您處理所有這些。 這個輪子不需要重新發明。

抓住 Glassfish 或 Tomcat + JAX-WS,然后完成它。 寫一些邏輯來解決問題,讓世界變得更美好,而不是幾年前就想出來的管道。

您可以序列化到一些中間體(xml、json 等),通過套接字將其推送並綁定回您的客戶端理解的 java 類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM