Portar Winsock a sockets de Linux

Tengo un programa que hace algunas redes usando Winsock, y uno de nuestros requisitos en este momento es portar nuestro programa a Linux. Lo único que nos impide hacer esto es Winsock.

Mi pregunta es: ¿Qué tan fácil puedo transferir esto a una implementación de Linux?

¿Hay alguna dificultad que debo tener en cuenta, y si simplemente incluyo los archivos de encabezado apropiados, qué tipo de cosas tendré que manejar?

¡Gracias por cualquier ayuda!

Publicaría código pero desafortunadamente no puedo debido a razones legales. Pero, nuestro código usa lo siguiente:

WSAStartup(..)
WSACleanup(..)
Socket(..)
sendto(..)
recvfrom(..)
ioctlsocket(..)
setsocketopt(..)

Respuestas a la pregunta(4)

Su respuesta a la pregunta