Si compilas para Solaris o SunOS, necesitas indicar algunos conmutadores adicionales en la línea de comandos para enlacer las bibliotecas adecuadas. Para conseguirlo simplemente añade " -lnsl -lsocket -lresolv" al final del comando de compilación, como sigue:
$ cc -o server server.c -lnsl -lsocket -lresolv
He probado un par de cositas que he hecho yo y compilan a la perfección usando -lnsl -lresolv. Cuando pruebo con -lsocket, me dice esto:
/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3/../../../../i686-pc-linux-gnu/bin/ld: no se puede encontrar -lsocket
collect2: ld devolvió el estado de salida 1
De todas formas, el mismo programa me compila y funciona a la perfección sin ningun flag, quiza si te lo piden es por portabilidad