簡體   English   中英

Java使用TCP發送對象

[英]Java send object with TCP

我用Java在不同的項目中制作了一個簡單的TCP服務器和客戶端。當我嘗試將字符串發送到服務器時,它可以工作,但是我想將對象發送到服務器。我為該對象創建了類,並使其可序列化,但是服務器和客戶端位於不同的項目中,那么如何使服務器和客戶端能夠識別要發送的對象?我試圖將這兩個類放在同一項目中的不同包中,但是這樣我只能運行服務器或客戶端,而不是兩者兼有。那么如何將對象從客戶端傳遞到服務器?

如果使用Java序列化,則必須具有相同名稱的同一個類,並且最好兩端具有相同的版本。 這不是您可以通過Java序列化更改的東西。 如果要進行自定義序列化,則可以執行此操作,但這不是簡單的方法。

我建議您有一個包含數據傳輸對象的jar,並與客戶端和服務器共享此jar,這樣可以更輕松地確保它們相同。

將您的項目分成三個jar,分別是客戶端,服務器和共享

將傳輸對象放入共享jar中,並將其部署在客戶端服務器上。 為了使序列化正常工作,您需要在兩端的類路徑上都提供序列化的類(並且它們的名稱必須完全相同,即相同的和相同的類名 )。

服務器和客戶端是兩個不同(但相似)的事物。 服務器在那里等待客戶端的傳入請求,而客戶端正是這樣做,向服務器請求內容。

為了使您的服務器和客戶端正常工作,可能需要滿足以下條件:

  1. 服務器正在運行
  2. 客戶端知道服務器的IP和端口號

請參閱此線程 ,以獲取更簡單,最新的解決方案,以Java中的TCP通過TCP發送對象。

暫無
暫無

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

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