假设我有一个服务器应用程序 - 连接通过TCP使用UNIX套接字。
连接是异步的 - 换句话说,客户端和服务器的套接字是非阻塞的。
假设出现以下情况:在某些条件下,服务器可能决定向已连接的客户端发送一些数据,并立即关闭连接:使用shutdown与SHUT_RDWR。
那么,我的问题是 - 是否保证当客户端调用recv时,它将接收到(由服务器发送的)数据?
或者,要接收数据,必须在服务器的shutdown之前调用recv?如果是这样,我应该怎么做(更准确地说,应该如何做),以确保客户端接收到数据?
连接是异步的 - 换句话说,客户端和服务器的套接字是非阻塞的。
假设出现以下情况:在某些条件下,服务器可能决定向已连接的客户端发送一些数据,并立即关闭连接:使用shutdown与SHUT_RDWR。
那么,我的问题是 - 是否保证当客户端调用recv时,它将接收到(由服务器发送的)数据?
或者,要接收数据,必须在服务器的shutdown之前调用recv?如果是这样,我应该怎么做(更准确地说,应该如何做),以确保客户端接收到数据?