出於測試目的,我正在設法開發一個聊天應用程序來通過本地無線網絡工作。通信傳輸的最佳選擇是什麼? (假設每個電話的唯一信息是本地IP)套接字?如何在本地無線網絡中的兩部電話之間傳輸數據以進行測試?
我提到聊天,因爲它只是用於測試,我的目的是像一些變量的值,數組等
欣賞任何想法/建議:)
出於測試目的,我正在設法開發一個聊天應用程序來通過本地無線網絡工作。通信傳輸的最佳選擇是什麼? (假設每個電話的唯一信息是本地IP)套接字?如何在本地無線網絡中的兩部電話之間傳輸數據以進行測試?
我提到聊天,因爲它只是用於測試,我的目的是像一些變量的值,數組等
欣賞任何想法/建議:)
使用簡單的套接字和緩衝流。制定一組您需要的JSON編碼消息。用這些消息包裝你的數據並通過套接字發送。您需要合併一種方式來表明JSON消息自從經驗以來有多長時間,有時會在消息發送/接收過程中發生滯後/差距。我們所做的是消息的前4個字節(例如Int)指示後續消息的(字節)長度。例如。如果您的json字符串長度爲30個字節,則首先發送30個字節(以字節爲單位),然後發送實際消息,以便通過套接字進行的所有傳輸均由長度 - 淨荷組合組成。
就我個人而言,我已經在一個android項目中做了這個。這比ObjectInputStream/ObjectOutputStream路由的優勢在於,它明顯更輕,並且可以與其他平臺(例如iOS等)互操作。我們甚至使用chunked base64編碼的json有效載荷進行文件傳輸(因此所有消息仍以JSON格式)。
我不知道長度 - 有效載荷對是最好的/唯一的方式去了解它。
也許最簡單的選擇之一就是使用套接字,將其流包裝在PrintWriter
和LineNumberReader
中,然後發送JSON編碼的數據。對於小的變量/數組應該足夠了。
我很困惑你的問題,你問的文件傳輸或只是簡單的消息/聊天? – Hyangelo
@Hyangelo你是完全正確的,我正在談論傳輸小包數據(變量,數組,類似的東西)。沒有文件傳輸! – Tiago
提交一個編輯,標題會說數據而不是文件傳輸。 – Hyangelo