我正准备尝试我的第一个涉及网络通信的项目。这只是一个以自学为目的的修补玩具应用程序 - 这里没有任何关键任务。我需要两个节点来相互通信。一个是 Android 平台,所以我将使用 Java。另一个节点是运行 Debian Linux 的 RaspberryPi。虽然我也可以在这方面使用 Java 并且可能只使用 RPC,但我想做的是开发我自己的与实现无关的 TCP/IP“协议”,以便两者进行通信,并让每个实现它但是可以工作最好的。我所说的“协议”的意思是我希望来回传递一组标准的消息,以及每个消息的一些值。例如:
"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 数据包中?有没有更好的办法?
谢谢!