这涉及到Linux内核2.6 TCP sockets。我使用非阻塞发送向另一个客户端发送大量数据,例如300 MB,该客户端每次接收8 MB。在接收了8 MB后,“接收者”停止接收,因为它需要执行其他任务,如错误处理。发送方会得到EWOULDBLOCK,但由于这是异步通信,发送方会尝试填充另一端的TCP接收缓冲区。
我的问题是:即使“发送者”收到EWOULDBLOCK并且“接收者”停止接收,TCP接收缓冲区中是否仍然有数据?同一套接字用于错误处理,因此“接收者”是否必须在尝试重用现有套接字之前清除TCP接收缓冲区?
我的问题是:即使“发送者”收到EWOULDBLOCK并且“接收者”停止接收,TCP接收缓冲区中是否仍然有数据?同一套接字用于错误处理,因此“接收者”是否必须在尝试重用现有套接字之前清除TCP接收缓冲区?