Greetings,
I have vast experience with C++ on WIdows and Win Sockets; and also C/C++ on Linux, and UNIX with BSD sockets.
Can I ask- is this running on Windows or *NIX?
If I can take a look at the code, I'm certain I can help you. You most likely have one of few common design issues (encountered in ascynchornous TCP/IP architectures and programs):
a) socket is opened in BLOCKING mode.
b) threads that manage send and receive and not synch'ed properly, using thread synch primitives(Critical Section, Mutex, Semaphore, Pipes etc)
I need to take a look at the code first.
Cheers
Dinesh