我正在使用套接字执行客户机-服务器程序,但是当我从客户机进行接收并且服务器没有发送时,执行将继续。我尝试使用MSG_WAITALL标志,但是我有同样的问题。客户:
ssize_t size_recv = recv(socketfd, buffer_rcv, RAW_MESSAGE_SIZE, MSG_WAITALL);
if(size_recv < 0 ){
log_message(LOG_DEBUG, "Error");
}
else{
printf("%zd Bytes recv\n", size_recv);
}
我收到0个字节的记录。如何阻止直到执行发送?
问题是,在服务器上,我有一条指令要关闭套接字,因此返回的是0字节。