I have seen so many posts of people using timers to check status of the winsock control when the winsock status is say sckClosing; other people try and send data when the winsock control is not ready.
Asynchronous programming requires a different mindset in that data to be sent must be stored in a buffer until such time as the winsock control is ready to send the data. The WinsockSender class attached is a simple solution to this.