我使用以下客户端代码。在connect()成功后,如果服务器关闭了所有连接,我的客户端将如何知道此服务器是否关闭?有没有办法从客户端代码中听取这类事件?
int sfd = socket(PF_INET, SOCK_STREAM, tcp->p_proto);
struct sockaddr_in isa = getipa("localhost", 1025);
connect(sfd, (struct sockaddr*)&isa, sizeof isa);
ssize_t size = recv(sfd, (void*)buff, sizeof buff, MSG_WAITALL);
puts(buff);
printf("Enter message to send\n");
scanf("%s",sendMsg);
send(sfd, (void*) sendMsg, 255, MSG_NOSIGNAL)
答案 0 :(得分:0)
recv()
返回零;如果连接遇到错误,则返回-1 errno
设置。
记录在案。
您不关心其他连接。
您还可以考虑将错误检查添加到其余代码中。这些系统调用中的每一个都会遇到错误。