I think the answer: no need. Socket handles in your program refers to internal Winsock kitchen: let Winsocket deals with its sockets...
But you need to invent (or use) some kind of thread synchronization mechanics, of course (to control all your threads execution).
It seems the worst case - accept() in socket thread returns any error code...
Please, carefully test my suggestion before use. It seems it's not so hard test case emulate this forced disconnection. Now I can't do it, sorry...
Good luck!