我正准备尝试我的第一个涉及网络通信的项目。这只是一个补丁玩具应用程序,目的是自学-在这里没有关键任务。我需要两个节点来相互通信。其中一个是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数据包中吗?有没有更好的方法?
谢谢!
发布于 2012-09-05 00:36:13
您只需要用所需的数据填充缓冲区,然后学习如何通过TCP套接字打开和发送数据。内核将处理如何安排有效负载以及如何控制TCP流。在服务器端,您必须学习如何侦听TCP套接字和读取传入数据。
发布于 2012-09-05 15:23:48
套接字编程是您应该搜索的词。
https://stackoverflow.com/questions/12267719
复制相似问题