primero, como manejar sockets en C
segundo un
buen entendimiento de redes, puees saber usar el socket que es la via de salida de la computadora, pero sin entender como están estructurados los paquetes a nivel binario, solo podrás hacer la tipica aplicación de chat punto a paunto... esta info tal vez la mejor fuente es "aspectos basicos del networking"
aquí una versión más o menos decente en pdf
aunque sinceramente te recomendaría migrar de C a C++ a menos que tengas gran interés al manejo de estructuras a majo nivel y control directo sobre la ram en tu programa...