#ifndef _INC_WINDOWS
#include <windows.h>
#endif /* _INC_WINDOWS */
/*
* Define the current Winsock version. To build an earlier Winsock version
* application redefine this value prior to including Winsock2.h.
*/
#if !defined(MAKEWORD)
#define MAKEWORD(low,high) \
((WORD)(((BYTE)(low)) ((WORD)((BYTE)(high))) << 8))
#endif
#ifndef WINSOCK_VERSION
#define WINSOCK_VERSION MAKEWORD(2,2)
#endif
/*
* The new type to be used in all
* instances which refer to sockets.
*/
typedef UINT_PTR SOCKET;
#ifndef s_addr
/*
* Internet address (old style... should be updated)
*/
struct in_addr {
union {
struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
struct { u_short s_w1,s_w2; } S_un_w;
u_long S_addr;
} S_un;
#define s_addr S_un.S_addr
/* can be used for most tcp & ip code */
#define s_host S_un.S_un_b.s_b2
/* host on imp */
#define s_net S_un.S_un_b.s_b1
/* network */
#define s_imp S_un.S_un_w.s_w2
/* imp */
#define s_impno S_un.S_un_b.s_b4
/* imp # */
#define s_lh S_un.S_un_b.s_b3
/* logical host */
};
#endif
#define INADDR_ANY (u_long)0x00000000
#define INADDR_LOOPBACK 0x7f000001
#define INADDR_BROADCAST (u_long)0xffffffff
#define INADDR_NONE 0xffffffff
#define ADDR_ANY INADDR_ANY
/*
* Socket address, internet style.
*/
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
#define WSADESCRIPTION_LEN 256
#define WSASYS_STATUS_LEN 128
typedef struct WSAData {
WORD wVersion;
WORD wHighVersion;
#ifdef _WIN64
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char FAR * lpVendorInfo;
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
#else
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char FAR * lpVendorInfo;
#endif
} WSADATA, FAR * LPWSADATA;
/*
* Definitions related to sockets: types, address families, options,
* taken from the BSD file sys/socket.h.
*/
/*
* This is used instead of -1, since the
* SOCKET type is unsigned.
*/
#define INVALID_SOCKET (SOCKET)(~0)
#define SOCKET_ERROR (-1)
/*
* Types
*/
#define SOCK_STREAM 1 /* stream socket */
#define SOCK_DGRAM 2 /* datagram socket */
#define SOCK_RAW 3 /* raw-protocol interface */
#define SOCK_RDM 4 /* reliably-delivered message */
#define SOCK_SEQPACKET 5 /* sequenced packet stream */
#define AF_UNIX 1 /* local to host (pipes, portals) */
#define AF_INET 2 /* internetwork: UDP, TCP, etc. */
#define AF_IPX AF_NS /* IPX protocols: IPX, SPX, etc. */
#define AF_NETBIOS 17 /* NetBios-style addresses */
#define AF_INET6 23 /* Internetwork Version 6 */
/*
* Structure used by kernel to store most
* addresses.
*/
struct sockaddr {
u_short sa_family; /* address family */
char sa_data[14]; /* up to 14 bytes of direct address */
};
#define PF_UNIX AF_UNIX
#define PF_INET AF_INET
#define PF_IPX AF_IPX
#define PF_NS AF_NS
#define PF_INET6 AF_INET6
/*
* Maximum queue length specifiable by listen.
*/
#define SOMAXCONN 0x7fffffff
/*
* Microsoft Windows Extended data types required for the functions to
* convert back and forth between binary and string forms of
* addresses.
*/
typedef struct sockaddr SOCKADDR;
typedef struct sockaddr *PSOCKADDR;
typedef struct sockaddr FAR *LPSOCKADDR;
/* Socket function prototypes */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
SOCKET
WSAAPI
accept(
IN SOCKET s,
OUT struct sockaddr FAR * addr,
IN OUT int FAR * addrlen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_TYPEDEFS
typedef
SOCKET
(WSAAPI * LPFN_ACCEPT)(
IN SOCKET s,
OUT struct sockaddr FAR * addr,
IN OUT int FAR * addrlen
);
#endif /* INCL_WINSOCK_API_TYPEDEFS */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
bind(
IN SOCKET s,
IN const struct sockaddr FAR * name,
IN int namelen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
closesocket(
IN SOCKET s
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
connect(
IN SOCKET s,
IN const struct sockaddr FAR * name,
IN int namelen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
ioctlsocket(
IN SOCKET s,
IN long cmd,
IN OUT u_long FAR * argp
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
getpeername(
IN SOCKET s,
OUT struct sockaddr FAR * name,
IN OUT int FAR * namelen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
getsockname(
IN SOCKET s,
OUT struct sockaddr FAR * name,
IN OUT int FAR * namelen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
getsockopt(
IN SOCKET s,
IN int level,
IN int optname,
OUT char FAR * optval,
IN OUT int FAR * optlen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
u_long
WSAAPI
htonl(
IN u_long hostlong
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
u_short
WSAAPI
htons(
IN u_short hostshort
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
unsigned long
WSAAPI
inet_addr(
IN const char FAR * cp
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
char FAR *
WSAAPI
inet_ntoa(
IN struct in_addr in
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
listen(
IN SOCKET s,
IN int backlog
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
u_long
WSAAPI
ntohl(
IN u_long netlong
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
u_short
WSAAPI
ntohs(
IN u_short netshort
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
recv(
IN SOCKET s,
OUT char FAR * buf,
IN int len,
IN int flags
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
recvfrom(
IN SOCKET s,
OUT char FAR * buf,
IN int len,
IN int flags,
OUT struct sockaddr FAR * from,
IN OUT int FAR * fromlen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
select(
IN int nfds,
IN OUT fd_set FAR * readfds,
IN OUT fd_set FAR * writefds,
IN OUT fd_set FAR *exceptfds,
IN const struct timeval FAR * timeout
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
send(
IN SOCKET s,
IN const char FAR * buf,
IN int len,
IN int flags
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
sendto(
IN SOCKET s,
IN const char FAR * buf,
IN int len,
IN int flags,
IN const struct sockaddr FAR * to,
IN int tolen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
setsockopt(
IN SOCKET s,
IN int level,
IN int optname,
IN const char FAR * optval,
IN int optlen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
shutdown(
IN SOCKET s,
IN int how
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
SOCKET
WSAAPI
socket(
IN int af,
IN int type,
IN int protocol
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
struct hostent FAR *
WSAAPI
gethostbyaddr(
IN const char FAR * addr,
IN int len,
IN int type
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
struct hostent FAR *
WSAAPI
gethostbyname(
IN const char FAR * name
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
gethostname(
OUT char FAR * name,
IN int namelen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
struct servent FAR *
WSAAPI
getservbyport(
IN int port,
IN const char FAR * proto
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
struct servent FAR *
WSAAPI
getservbyname(
IN const char FAR * name,
IN const char FAR * proto
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
WSAStartup(
IN WORD wVersionRequested,
OUT LPWSADATA lpWSAData
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
WSACleanup(
void
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
void
WSAAPI
WSASetLastError(
IN int iError
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
WSAGetLastError(
void
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
BOOL
WSAAPI
WSAIsBlocking(
void
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
HANDLE
WSAAPI
WSAAsyncGetServByName(
IN HWND hWnd,
IN u_int wMsg,
IN const char FAR * name,
IN const char FAR * proto,
OUT char FAR * buf,
IN int buflen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
HANDLE
WSAAPI
WSAAsyncGetHostByName(
IN HWND hWnd,
IN u_int wMsg,
IN const char FAR * name,
OUT char FAR * buf,
IN int buflen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
WSAAsyncSelect(
IN SOCKET s,
IN HWND hWnd,
IN u_int wMsg,
IN long lEvent
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
SOCKET
WSAAPI
WSAAccept(
IN SOCKET s,
OUT struct sockaddr FAR * addr,
IN OUT LPINT addrlen,
IN LPCONDITIONPROC lpfnCondition,
IN DWORD_PTR dwCallbackData
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
BOOL
WSAAPI
WSACloseEvent(
IN WSAEVENT hEvent
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
WSAConnect(
IN SOCKET s,
IN const struct sockaddr FAR * name,
IN int namelen,
IN LPWSABUF lpCallerData,
OUT LPWSABUF lpCalleeData,
IN LPQOS lpSQOS,
IN LPQOS lpGQOS
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
WSAEVENT
WSAAPI
WSACreateEvent(
void
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_TYPEDEFS
typedef
WSAEVENT
(WSAAPI * LPFN_WSACREATEEVENT)(
void
);
#endif /* INCL_WINSOCK_API_TYPEDEFS */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
WSADuplicateSocketA(
IN SOCKET s,
IN DWORD dwProcessId,
OUT LPWSAPROTOCOL_INFOA lpProtocolInfo
);
WINSOCK_API_LINKAGE
int
WSAAPI
WSADuplicateSocketW(
IN SOCKET s,
IN DWORD dwProcessId,
OUT LPWSAPROTOCOL_INFOW lpProtocolInfo
);
#ifdef UNICODE
#define WSADuplicateSocket WSADuplicateSocketW
#else
#define WSADuplicateSocket WSADuplicateSocketA
#endif /* !UNICODE */
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#include <windows.h>
#endif /* _INC_WINDOWS */
/*
* Define the current Winsock version. To build an earlier Winsock version
* application redefine this value prior to including Winsock2.h.
*/
#if !defined(MAKEWORD)
#define MAKEWORD(low,high) \
((WORD)(((BYTE)(low)) ((WORD)((BYTE)(high))) << 8))
#endif
#ifndef WINSOCK_VERSION
#define WINSOCK_VERSION MAKEWORD(2,2)
#endif
/*
* The new type to be used in all
* instances which refer to sockets.
*/
typedef UINT_PTR SOCKET;
#ifndef s_addr
/*
* Internet address (old style... should be updated)
*/
struct in_addr {
union {
struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
struct { u_short s_w1,s_w2; } S_un_w;
u_long S_addr;
} S_un;
#define s_addr S_un.S_addr
/* can be used for most tcp & ip code */
#define s_host S_un.S_un_b.s_b2
/* host on imp */
#define s_net S_un.S_un_b.s_b1
/* network */
#define s_imp S_un.S_un_w.s_w2
/* imp */
#define s_impno S_un.S_un_b.s_b4
/* imp # */
#define s_lh S_un.S_un_b.s_b3
/* logical host */
};
#endif
#define INADDR_ANY (u_long)0x00000000
#define INADDR_LOOPBACK 0x7f000001
#define INADDR_BROADCAST (u_long)0xffffffff
#define INADDR_NONE 0xffffffff
#define ADDR_ANY INADDR_ANY
/*
* Socket address, internet style.
*/
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
#define WSADESCRIPTION_LEN 256
#define WSASYS_STATUS_LEN 128
typedef struct WSAData {
WORD wVersion;
WORD wHighVersion;
#ifdef _WIN64
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char FAR * lpVendorInfo;
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
#else
char szDescription[WSADESCRIPTION_LEN+1];
char szSystemStatus[WSASYS_STATUS_LEN+1];
unsigned short iMaxSockets;
unsigned short iMaxUdpDg;
char FAR * lpVendorInfo;
#endif
} WSADATA, FAR * LPWSADATA;
/*
* Definitions related to sockets: types, address families, options,
* taken from the BSD file sys/socket.h.
*/
/*
* This is used instead of -1, since the
* SOCKET type is unsigned.
*/
#define INVALID_SOCKET (SOCKET)(~0)
#define SOCKET_ERROR (-1)
/*
* Types
*/
#define SOCK_STREAM 1 /* stream socket */
#define SOCK_DGRAM 2 /* datagram socket */
#define SOCK_RAW 3 /* raw-protocol interface */
#define SOCK_RDM 4 /* reliably-delivered message */
#define SOCK_SEQPACKET 5 /* sequenced packet stream */
#define AF_UNIX 1 /* local to host (pipes, portals) */
#define AF_INET 2 /* internetwork: UDP, TCP, etc. */
#define AF_IPX AF_NS /* IPX protocols: IPX, SPX, etc. */
#define AF_NETBIOS 17 /* NetBios-style addresses */
#define AF_INET6 23 /* Internetwork Version 6 */
/*
* Structure used by kernel to store most
* addresses.
*/
struct sockaddr {
u_short sa_family; /* address family */
char sa_data[14]; /* up to 14 bytes of direct address */
};
#define PF_UNIX AF_UNIX
#define PF_INET AF_INET
#define PF_IPX AF_IPX
#define PF_NS AF_NS
#define PF_INET6 AF_INET6
/*
* Maximum queue length specifiable by listen.
*/
#define SOMAXCONN 0x7fffffff
/*
* Microsoft Windows Extended data types required for the functions to
* convert back and forth between binary and string forms of
* addresses.
*/
typedef struct sockaddr SOCKADDR;
typedef struct sockaddr *PSOCKADDR;
typedef struct sockaddr FAR *LPSOCKADDR;
/* Socket function prototypes */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
SOCKET
WSAAPI
accept(
IN SOCKET s,
OUT struct sockaddr FAR * addr,
IN OUT int FAR * addrlen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_TYPEDEFS
typedef
SOCKET
(WSAAPI * LPFN_ACCEPT)(
IN SOCKET s,
OUT struct sockaddr FAR * addr,
IN OUT int FAR * addrlen
);
#endif /* INCL_WINSOCK_API_TYPEDEFS */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
bind(
IN SOCKET s,
IN const struct sockaddr FAR * name,
IN int namelen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
closesocket(
IN SOCKET s
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
connect(
IN SOCKET s,
IN const struct sockaddr FAR * name,
IN int namelen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
ioctlsocket(
IN SOCKET s,
IN long cmd,
IN OUT u_long FAR * argp
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
getpeername(
IN SOCKET s,
OUT struct sockaddr FAR * name,
IN OUT int FAR * namelen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
getsockname(
IN SOCKET s,
OUT struct sockaddr FAR * name,
IN OUT int FAR * namelen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
getsockopt(
IN SOCKET s,
IN int level,
IN int optname,
OUT char FAR * optval,
IN OUT int FAR * optlen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
u_long
WSAAPI
htonl(
IN u_long hostlong
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
u_short
WSAAPI
htons(
IN u_short hostshort
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
unsigned long
WSAAPI
inet_addr(
IN const char FAR * cp
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
char FAR *
WSAAPI
inet_ntoa(
IN struct in_addr in
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
listen(
IN SOCKET s,
IN int backlog
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
u_long
WSAAPI
ntohl(
IN u_long netlong
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
u_short
WSAAPI
ntohs(
IN u_short netshort
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
recv(
IN SOCKET s,
OUT char FAR * buf,
IN int len,
IN int flags
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
recvfrom(
IN SOCKET s,
OUT char FAR * buf,
IN int len,
IN int flags,
OUT struct sockaddr FAR * from,
IN OUT int FAR * fromlen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
select(
IN int nfds,
IN OUT fd_set FAR * readfds,
IN OUT fd_set FAR * writefds,
IN OUT fd_set FAR *exceptfds,
IN const struct timeval FAR * timeout
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
send(
IN SOCKET s,
IN const char FAR * buf,
IN int len,
IN int flags
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
sendto(
IN SOCKET s,
IN const char FAR * buf,
IN int len,
IN int flags,
IN const struct sockaddr FAR * to,
IN int tolen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
setsockopt(
IN SOCKET s,
IN int level,
IN int optname,
IN const char FAR * optval,
IN int optlen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
shutdown(
IN SOCKET s,
IN int how
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
SOCKET
WSAAPI
socket(
IN int af,
IN int type,
IN int protocol
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
struct hostent FAR *
WSAAPI
gethostbyaddr(
IN const char FAR * addr,
IN int len,
IN int type
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
struct hostent FAR *
WSAAPI
gethostbyname(
IN const char FAR * name
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
gethostname(
OUT char FAR * name,
IN int namelen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
struct servent FAR *
WSAAPI
getservbyport(
IN int port,
IN const char FAR * proto
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
struct servent FAR *
WSAAPI
getservbyname(
IN const char FAR * name,
IN const char FAR * proto
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
WSAStartup(
IN WORD wVersionRequested,
OUT LPWSADATA lpWSAData
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
WSACleanup(
void
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
void
WSAAPI
WSASetLastError(
IN int iError
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
WSAGetLastError(
void
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
BOOL
WSAAPI
WSAIsBlocking(
void
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
HANDLE
WSAAPI
WSAAsyncGetServByName(
IN HWND hWnd,
IN u_int wMsg,
IN const char FAR * name,
IN const char FAR * proto,
OUT char FAR * buf,
IN int buflen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
HANDLE
WSAAPI
WSAAsyncGetHostByName(
IN HWND hWnd,
IN u_int wMsg,
IN const char FAR * name,
OUT char FAR * buf,
IN int buflen
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
WSAAsyncSelect(
IN SOCKET s,
IN HWND hWnd,
IN u_int wMsg,
IN long lEvent
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
SOCKET
WSAAPI
WSAAccept(
IN SOCKET s,
OUT struct sockaddr FAR * addr,
IN OUT LPINT addrlen,
IN LPCONDITIONPROC lpfnCondition,
IN DWORD_PTR dwCallbackData
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
BOOL
WSAAPI
WSACloseEvent(
IN WSAEVENT hEvent
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
WSAConnect(
IN SOCKET s,
IN const struct sockaddr FAR * name,
IN int namelen,
IN LPWSABUF lpCallerData,
OUT LPWSABUF lpCalleeData,
IN LPQOS lpSQOS,
IN LPQOS lpGQOS
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
WSAEVENT
WSAAPI
WSACreateEvent(
void
);
#endif /* INCL_WINSOCK_API_PROTOTYPES */
#if INCL_WINSOCK_API_TYPEDEFS
typedef
WSAEVENT
(WSAAPI * LPFN_WSACREATEEVENT)(
void
);
#endif /* INCL_WINSOCK_API_TYPEDEFS */
#if INCL_WINSOCK_API_PROTOTYPES
WINSOCK_API_LINKAGE
int
WSAAPI
WSADuplicateSocketA(
IN SOCKET s,
IN DWORD dwProcessId,
OUT LPWSAPROTOCOL_INFOA lpProtocolInfo
);
WINSOCK_API_LINKAGE
int
WSAAPI
WSADuplicateSocketW(
IN SOCKET s,
IN DWORD dwProcessId,
OUT LPWSAPROTOCOL_INFOW lpProtocolInfo
);
#ifdef UNICODE
#define WSADuplicateSocket WSADuplicateSocketW
#else
#define WSADuplicateSocket WSADuplicateSocketA
#endif /* !UNICODE */
#endif /* INCL_WINSOCK_API_PROTOTYPES */
덧글을 달아 주세요