Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我的应用程序使用套接字小消息通过电线发送。每条消息大约是 200 字节的数据。我希望看到我的数据以 2 帧而不是 1 帧发送。我的问题是
我正在使用 Linux 和 C。
如何做到这一点,即有没有办法让 TCP 自动将缓冲区分成 2 帧?
TCP是流式通信协议,所有数据都是连续的。您应该通过分隔符拆分数据。
例如,在 HTTP 协议中,每个单独的请求都被两个\n.
\n
如果我在 2 次单独的写入中发送缓冲区,我会得到相同的结果吗?
不,您将收到它们作为一个连续的数据流。帧是没有意义的。
注意:在应用程序中接收任何数据 TCP 之前,数据包会被分离,但操作系统会收集并重新组装它们。这个过程对您的应用程序是透明的。
您可以考虑以下几点。