diff --git a/src/socket.cpp b/src/socket.cpp
index af32210c43a028b81d44c349f690bfb4276ebedd..ea65ffda3cca3be8360ba7e4a7a70411619a2e49 100644
--- a/src/socket.cpp
+++ b/src/socket.cpp
@@ -18,6 +18,33 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 */
 
 #include "socket.h"
+
+#ifdef _WIN32
+	#define WIN32_LEAN_AND_MEAN
+	// Without this some of the network functions are not found on mingw
+	#ifndef _WIN32_WINNT
+		#define _WIN32_WINNT 0x0501
+	#endif
+	#include <windows.h>
+	#include <winsock2.h>
+	#include <ws2tcpip.h>
+	#ifdef _MSC_VER
+		#pragma comment(lib, "ws2_32.lib")
+	#endif
+typedef SOCKET socket_t;
+typedef int socklen_t;
+#else
+	#include <sys/types.h>
+	#include <sys/socket.h>
+	#include <netinet/in.h>
+	#include <fcntl.h>
+	#include <netdb.h>
+	#include <unistd.h>
+	#include <arpa/inet.h>
+typedef int socket_t;
+#endif
+
+#include "constants.h"
 #include "debug.h"
 #include <stdio.h>
 #include <iostream>
diff --git a/src/socket.h b/src/socket.h
index 74b5fb64391173c6142ccbd95c3e3bd3606022f7..fe542dfcce3079f918fa6aa1a833d99c595dfb23 100644
--- a/src/socket.h
+++ b/src/socket.h
@@ -20,33 +20,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #ifndef SOCKET_HEADER
 #define SOCKET_HEADER
 
-#ifdef _WIN32
-	#define WIN32_LEAN_AND_MEAN
-	// Without this some of the network functions are not found on mingw
-	#ifndef _WIN32_WINNT
-		#define _WIN32_WINNT 0x0501
-	#endif
-	#include <windows.h>
-	#include <winsock2.h>
-	#include <ws2tcpip.h>
-	#ifdef _MSC_VER
-		#pragma comment(lib, "ws2_32.lib")
-	#endif
-typedef SOCKET socket_t;
-typedef int socklen_t;
-#else
-	#include <sys/types.h>
-	#include <sys/socket.h>
-	#include <netinet/in.h>
-	#include <fcntl.h>
-	#include <netdb.h>
-	#include <unistd.h>
-typedef int socket_t;
-#endif
-
 #include <ostream>
 #include "exceptions.h"
-#include "constants.h"
 
 class SocketException : public BaseException
 {