tcp keepalive设置时需不需要客户端和服务器端都设置

现在有一个用mfc写的client和一个mfc写的server,在client端设置了keepalive后,导致了服务端出现问题,甚至导致服务端所在服务器系统的崩溃。
现在有两个问题:
1.客户端设置了keepalive,服务端要不要设置
2.上述的服务器系统崩溃的问题,是什么原因?

1,keepalive需要client和server同时配合,都设置,底层的tcp会根据keepalive来选择是否保持链接
2,用netstats查看server上的链接是否正常,是否有大量TIME_WAIT或CLOSE_WAIT
3,检查双方的代码,不排除代码写的不好。