0

我正准备尝试我的第一个涉及网络通信的项目。这只是一个以自学为目的的修补玩具应用程序 - 这里没有任何关键任务。我需要两个节点来相互通信。一个是 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 数据包中?有没有更好的办法?

谢谢!

4

2 回答 2

1

你只需要用你想要的数据填充一个缓冲区,然后学习如何通过 TCP 套接字打开和发送数据。内核将处理如何安排有效负载以及如何控制 TCP 流。在服务器端,您必须学习如何侦听 TCP 套接字并读取传入数据。

于 2012-09-04T16:36:13.340 回答
1

套接字编程是您应该搜索的词。

于 2012-09-05T07:23:48.427 回答