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

时间:2017-01-19 07:26:45

标签: c# sockets tcp tcpserver

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

我的问题是,我应该处理收到的TCP"数据包顺序"在我的代码中,或者TCP在后台自己的缓冲区上处理它?因为传输的TCP数据包不是以正确的顺序到达接收方。

1 个答案:

答案 0 :(得分:1)

  
    

我的问题是,我应该处理收到的TCP"数据包顺序"在我的代码中另外

  

没有。 TCP保证它将按照接收的顺序将数据切换到应用程序。应用程序无需实现逻辑以确保数据接收的顺序。再次检查您的应用程序代码,查找导致收到的数据与发送的数据顺序不同的任何错误。