处理 TCP 数据时会发生什么
What to expect when processing TCP data
我正在使用 POSIX OS (vxWorks),想了解如何处理 TCP 数据。我了解在 UDP 中,一切都完全取决于您,而 TCP 在底层管理得更多。
假设我连接的远程套接字承诺向我发送 JSON 数据。文档只是说,一旦建立,我们将向您发送 JSON 数据。
在 TCP 套接字上使用函数 recv
,并假设我给它一个极端大小的缓冲区,我是否应该期望我总是会得到完美组装的 JSON 数据,即使消息可能会在接口层上以多个块的形式发送,或者我是否需要从本质上解析我收到的每个数据缓冲区,直到我认为我有一个完整的 JSON 消息?
TCP 不了解应用程序消息。如果您的协议有的话,您需要在 TCP 之上实现分层协议来查找消息边界。
我正在使用 POSIX OS (vxWorks),想了解如何处理 TCP 数据。我了解在 UDP 中,一切都完全取决于您,而 TCP 在底层管理得更多。
假设我连接的远程套接字承诺向我发送 JSON 数据。文档只是说,一旦建立,我们将向您发送 JSON 数据。
在 TCP 套接字上使用函数 recv
,并假设我给它一个极端大小的缓冲区,我是否应该期望我总是会得到完美组装的 JSON 数据,即使消息可能会在接口层上以多个块的形式发送,或者我是否需要从本质上解析我收到的每个数据缓冲区,直到我认为我有一个完整的 JSON 消息?
TCP 不了解应用程序消息。如果您的协议有的话,您需要在 TCP 之上实现分层协议来查找消息边界。