在应用程序级别的接收方处理 TCP 数据包顺序

Handling of TCP packet order on receiver side on application level

通过TCP套接字编程: 在我的应用程序中,接收端使用一个小缓冲区然后传输数据。因此 recv() 被调用多次,直到接收到所有数据。在每次调用 recv() 时,使用的缓冲区被复制到另一个大缓冲区或部分附加到文件。

我的问题是,我应该在我的代码中额外处理接收到的 TCP "packet order",还是 TCP 在后台自己的缓冲区中处理它?因为传输的 TCP 数据包到达接收端的顺序不正确。

My question here is, should I handle the received TCP "packet order" in my code additionally

没有。 TCP 保证它会按照接收数据的顺序将数据移交给应用程序。应用程序无需实现逻辑来确保数据接收的顺序。再次检查您的应用程序代码是否存在导致接收数据与发送顺序不同的错误。