¿Por qué no usas
lNet (Lightweight Networking Library)? Te hace la vida más fácil al momento de utilizar sockets, tanto TCP como UDP. Sus componentes son sencillos de usar y son multiplataforma. Hay una sección en su sitio web donde te explica cómo usarlos. Se que no resuelvo tu duda, pero quizás puedas considerar esto como una alternativa.
Yo he realizado un Chat sencillo con esto y me fue muy bien.