Вы должны поместить winsock2.h перед windows.h, как это было предложено Юлианом Чербаною
#include <winsock2.h>
#include <windows.h>
Вы также можете использовать макрос "постное и среднее":
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
#include <windows.h>
#include <winsock2.h>
Причинаописано в msdn: Создание базового приложения Winsock
Также убедитесь, что вы связываете свою программу с файлом WS2_32.lib (это зависит от того, какую IDE вы используете, например, VisualStudio?)
В Visual Studio выберите «Проект»> «Свойства»> «Линкер»> «Дополнительные включения» (или что-то в этом роде, но не на компьютере с Visual Studio на данный момент…). Это также описано в приведенной выше ссылке.