Winsock... What happens when the server dies?

I have two applications:

-A server, which is the one that calls listen().
-A client, which is the one that calls connect().

Ok, I've got them running on a LAN and they are constantly sending each other stuff. To make things short, just assume that the server is the one that sends all the time, and the client receives all the time.

Well, when nothing strange happens, it works great. Also, when I unplug the Ethernet cable from the client, recv() returns SOCKET_ERROR, so I can do the necessary clean up and close my application correctly. However, when I unplug the Ethernet cable from the server I don't get a SOCKET_ERROR, recv() returns the size of the data I asked it to receive... Any ideas?