Portando o Winsock para soquetes do Linux

Eu tenho um programa que faz algumas redes usando o Winsock, e um dos nossos requisitos agora é portar nosso programa para o Linux. A única coisa que nos impede de fazer isso é Winsock.

Minha pergunta é: Quão fácil posso portar isso para uma implementação Linux?

Existem armadilhas das quais eu deveria estar ciente e, se eu simplesmente incluir os arquivos de cabeçalho apropriados, que tipo de coisas terei que garantir?

Obrigado por qualquer ajuda!

Eu postaria o código, mas infelizmente não posso devido a razões legais. Mas, nosso código usa o seguinte:

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

questionAnswers(4)

yourAnswerToTheQuestion