处理 TCP 数据时会发生什么

What to expect when processing TCP data

我正在使用 POSIX OS (vxWorks),想了解如何处理 TCP 数据。我了解在 UDP 中,一切都完全取决于您,而 TCP 在底层管理得更多。

假设我连接的远程套接字承诺向我发送 JSON 数据。文档只是说,一旦建立,我们将向您发送 JSON 数据。

在 TCP 套接字上使用函数 recv,并假设我给它一个极端大小的缓冲区,我是否应该期望我总是会得到完美组装的 JSON 数据,即使消息可能会在接口层上以多个块的形式发送,或者我是否需要从本质上解析我收到的每个数据缓冲区,直到我认为我有一个完整的 JSON 消息?

TCP 不了解应用程序消息。如果您的协议有的话,您需要在 TCP 之上实现分层协议来查找消息边界。