Why not just use a blocking socket?
This may be a bit dated, but here is some explanation on blocking/non-blocking and overlapping IO.
http://support.microsoft.com/kb/181611
It would help if we knew which language and OS you were using, BTW, to better show code snippets.