簡體   English   中英

通過TCP套接字將對象從Java服務器發送到android客戶端

[英]sending objects through TCP socket from java server to android client

我本打算使用objectOutputStream,但聽說這是不可靠的,因為不同的Java版本可能會以不同的方式反序列化對象。 關於“可怕的跨體系結構實踐..”

那么我又如何在這些設備之間發送對象和數組,使接收端可以將適當的對象或數組數據拼湊在一起呢?

編輯:只需閱讀您在做什么。 您可能不需要Web服務器。 由於Web服務器具有大量支持,因此很多人推薦一個。 您當然可以使用TCP或UDP在服務器和客戶端之間進行通信。 如果要進行數據交換,則需要具有一些協議,並且這里的大多數人都會熟悉XML或JSON

如果您需要靈感,請嘗試查看一些協議,例如FTP甚至Bittorrent

Web服務器的情況:

我寫了一個Java Web服務器來完成大學作業。 如果您對TCP / IP有很好的了解,那么Web服務器實際上就非常簡單。 盡管分散在網上各處執行此操作的代碼有些困難,但難以理解到底是怎么回事,但是一旦完成,這還不錯

您絕對應該簽出HTTP的RFC,即使這些通常用法文來表達。 除此之外,在服務器上,您基本上可以逐行讀取字符串,並且應該能夠弄清楚在服務器上要做什么(示例GET /somefile.html HTTP / 1.0)。 只需在這些行上執行System.out.println,然后從那里開始。 客戶端代碼也是如此。 您還可以使用telnet查看Web服務器的功能

為了進行測試,我實際上建議您嘗試使用常規的Web瀏覽器,例如Firefox,Chrome,IE,Safari,甚至curl腳本。 這是一項簡單的測試,可以查看服務器是否正常運行

就數據交換而言,建議使用XML或JSON,主要是,如果您學習如何處理XML,則將獲得100點經驗值。 但是,要開始工作,您可以僅通過發送和接收“ Wazzzaaap”之類的文本開始。 Web瀏覽器還可以獲取XML和JSON數據。

通過“ java服務器”,您使用哪種協議?

一種選擇是RPC,它在java.rmi中定義

如果使用的是http,最簡單的選擇是在tomcat / jetty中實現一個小型servlet並使用Restful服務

數據格式可以是xml,json,bin等

暫無
暫無

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

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