我正准备尝试我的第一个涉及网络通信的项目。这只是一个修补玩具的应用程序,目的是自我教学 - 这里没有任何关键任务。我需要两个节点才能相互通信。一个是Android平台,所以我将使用Java。另一个节点是运行Debian Linux的RaspberryPi。虽然我也可以在这方面使用Java,也许只是使用RPC,我想做的就是开发我自己的小实现无关的TCP / IP“协议”,让两者进行通信,然后让每个实现它然后工作最好。我的意思是“协议”是我想要一组标准的消息来回传递,以及每个消息的一些值。 E.g:
"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数据包中吗?还有更好的方法吗?
谢谢!
答案 0 :(得分:1)
您只需要用您想要的数据填充缓冲区,然后学习如何通过TCP套接字打开和发送数据。内核将处理如何安排有效负载以及如何控制TCP流。在服务器端,您必须学习如何侦听TCP套接字并读取传入数据。
答案 1 :(得分:1)
套接字编程是您应该搜索的单词。