以下提供的是windows/linux跨平台网络开发的通用定义
#ifndef _SOCKET_TYPE_H
#define _SOCKET_TYPE_H
#ifdef _WIN32
#include <winsock2.h>
#define ERRNO (WSAGetLastError())
#define NEEDBLOCK WSAEWOULDBLOCK
typedef int socklen_t;
#else
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#ifndef INVALID_SOCKET
#define INVALID_SOCKET (SOCKET)(~0)
#endif
#ifndef SOCKET_ERROR
#define SOCKET_ERROR (-1)
#endif
#ifndef closesocket
#define closesocket(x) ::close(x)
#endif
typedef int SOCKET;
#define ERRNO (errno)
#define NEEDBLOCK EAGAIN
#endif
#endif