I have a client server app.

The sockets are set with "KEEP ALIVES"

Code:
	setsockopt(SocketInfo[i].Socket,SOL_SOCKET,SO_KEEPALIVE,(char*)&iSocOpt,sizeof(int));
but they are ranomly disconnected with no warning to the client.
The server gets notification but the client does not. As the client inits the connection, it needs to get notification. (I think it is a evil router / switch)

Any other ideas? Any ideas on how to get notification of the disconnect.
(I need to ensure that all the sockets remain open at all times, in case the sever needs to send critical data.)