我正準備嘗試我的第一個涉及網絡通信的項目。這只是一個修補程序玩具應用程序,目的是自學 - 這裏沒有任何關鍵任務。我將需要兩個節點來相互溝通。一個將是一個Android平臺,所以我將使用Java。另一個節點將是運行Debian Linux的RaspberryPi。雖然我也可以在這方面使用Java,也許只是使用RPC,但我想要做的是開發我自己的一些與實現無關的TCP/IP協議,以便兩者進行通信,然後讓每個實現它最好。我的意思是「協議」是我想要一組標準的消息來回傳遞,以及每個消息的一些值。例如: -從哪裏開始進行TCP通信?
"Protocol" Definition:
MESSAGE TYPE A (Float arg, Int arg)
MESSAGE TYPE B (Int arg)
MESSAGE TYPE C (Int arg, String arg, Int arg)
一個例子 「對話」:
Node 1 Node 2
A(5.4, 4) --->
B(6) --->
<---- C(3, 'Hello', 0xFF)
B(5) --->
<---- A(43.0, 16)
所以我的問題是:
(1)請問以上,甚至有意義嗎?我需要澄清我的意圖嗎?提供更多信息?這是我第一次在兩個正在運行的程序之間進行網絡通信,所以我可能會離開我所要求的基礎。如果我以錯誤的方式接近,我會很樂意提供更好的建議。
(2)我該如何解決這個問題?我只是將一個長字符串填入TCP數據包中嗎?有沒有更好的辦法?
謝謝!
感謝您的回答!什麼類型的數據進入緩衝區?一串人物?字節? – loneboat
緩衝區是一個字節數組。你可以寫任何你想要的東西,但是當你想編寫像整數這樣的多字節實體時,你必須注意網絡/主機順序轉換。 – ziu