📄 winsock.h
字号:
#define ENAMETOOLONG WSAENAMETOOLONG
#define EHOSTDOWN WSAEHOSTDOWN
#define EHOSTUNREACH WSAEHOSTUNREACH
#define ENOTEMPTY WSAENOTEMPTY
#define EPROCLIM WSAEPROCLIM
#define EUSERS WSAEUSERS
#define EDQUOT WSAEDQUOT
#define ESTALE WSAESTALE
#define EREMOTE WSAEREMOTE
#endif
/* Socket function prototypes */
#ifdef __cplusplus
extern "C" {
#endif
SOCKET PASCAL FAR accept (
IN SOCKET s,
OUT struct sockaddr FAR *addr,
IN OUT int FAR *addrlen);
int PASCAL FAR bind (
IN SOCKET s,
IN const struct sockaddr FAR *addr,
IN int namelen);
int PASCAL FAR closesocket ( IN SOCKET s);
int PASCAL FAR connect (
IN SOCKET s,
IN const struct sockaddr FAR *name,
IN int namelen);
int PASCAL FAR ioctlsocket (
IN SOCKET s,
IN long cmd,
IN OUT u_long FAR *argp);
int PASCAL FAR getpeername (
IN SOCKET s,
OUT struct sockaddr FAR *name,
IN OUT int FAR * namelen);
int PASCAL FAR getsockname (
IN SOCKET s,
OUT struct sockaddr FAR *name,
IN OUT int FAR * namelen);
int PASCAL FAR getsockopt (
IN SOCKET s,
IN int level,
IN int optname,
OUT char FAR * optval,
IN OUT int FAR *optlen);
u_long PASCAL FAR htonl ( IN u_long hostlong);
u_short PASCAL FAR htons (IN u_short hostshort);
unsigned long PASCAL FAR inet_addr (IN const char FAR * cp);
char FAR * PASCAL FAR inet_ntoa (IN struct in_addr in);
int PASCAL FAR listen (
IN SOCKET s,
IN int backlog);
u_long PASCAL FAR ntohl (IN u_long netlong);
u_short PASCAL FAR ntohs (IN u_short netshort);
int PASCAL FAR recv (
IN SOCKET s,
OUT char FAR * buf,
IN int len,
IN int flags);
int PASCAL FAR recvfrom (
IN SOCKET s,
OUT char FAR * buf,
IN int len,
IN int flags,
OUT struct sockaddr FAR *from,
IN OUT int FAR * fromlen);
int PASCAL FAR 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);
int PASCAL FAR send (
IN SOCKET s,
IN const char FAR * buf,
IN int len,
IN int flags);
int PASCAL FAR sendto (
IN SOCKET s,
IN const char FAR * buf,
IN int len,
IN int flags,
IN const struct sockaddr FAR *to,
IN int tolen);
int PASCAL FAR setsockopt (
IN SOCKET s,
IN int level,
IN int optname,
IN const char FAR * optval,
IN int optlen);
int PASCAL FAR shutdown (
IN SOCKET s,
IN int how);
SOCKET PASCAL FAR socket (
IN int af,
IN int type,
IN int protocol);
/* Database function prototypes */
struct hostent FAR * PASCAL FAR gethostbyaddr(
IN const char FAR * addr,
IN int len,
IN int type);
struct hostent FAR * PASCAL FAR gethostbyname(IN const char FAR * name);
int PASCAL FAR gethostname (
OUT char FAR * name,
IN int namelen);
struct servent FAR * PASCAL FAR getservbyport(
IN int port,
IN const char FAR * proto);
struct servent FAR * PASCAL FAR getservbyname(
IN const char FAR * name,
IN const char FAR * proto);
struct protoent FAR * PASCAL FAR getprotobynumber(IN int proto);
struct protoent FAR * PASCAL FAR getprotobyname(IN const char FAR * name);
/* Microsoft Windows Extension function prototypes */
int PASCAL FAR WSAStartup(
IN WORD wVersionRequired,
OUT LPWSADATA lpWSAData);
int PASCAL FAR WSACleanup(void);
void PASCAL FAR WSASetLastError(IN int iError);
int PASCAL FAR WSAGetLastError(void);
BOOL PASCAL FAR WSAIsBlocking(void);
int PASCAL FAR WSAUnhookBlockingHook(void);
FARPROC PASCAL FAR WSASetBlockingHook(IN FARPROC lpBlockFunc);
int PASCAL FAR WSACancelBlockingCall(void);
HANDLE PASCAL FAR 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);
HANDLE PASCAL FAR WSAAsyncGetServByPort(
IN HWND hWnd,
IN u_int wMsg,
IN int port,
IN const char FAR * proto,
OUT char FAR * buf,
IN int buflen);
HANDLE PASCAL FAR WSAAsyncGetProtoByName(
IN HWND hWnd,
IN u_int wMsg,
IN const char FAR * name,
OUT char FAR * buf,
IN int buflen);
HANDLE PASCAL FAR WSAAsyncGetProtoByNumber(
IN HWND hWnd,
IN u_int wMsg,
IN int number,
OUT char FAR * buf,
IN int buflen);
HANDLE PASCAL FAR WSAAsyncGetHostByName(
IN HWND hWnd,
IN u_int wMsg,
IN const char FAR * name,
OUT char FAR * buf,
IN int buflen);
HANDLE PASCAL FAR WSAAsyncGetHostByAddr(
IN HWND hWnd,
IN u_int wMsg,
IN const char FAR * addr,
IN int len,
IN int type,
OUT char FAR * buf,
IN int buflen);
int PASCAL FAR WSACancelAsyncRequest(IN HANDLE hAsyncTaskHandle);
int PASCAL FAR WSAAsyncSelect(
IN SOCKET s,
IN HWND hWnd,
IN u_int wMsg,
IN long lEvent);
int PASCAL FAR WSARecvEx (
IN SOCKET s,
OUT char FAR * buf,
IN int len,
IN OUT int FAR *flags);
typedef struct _TRANSMIT_FILE_BUFFERS {
PVOID Head;
DWORD HeadLength;
PVOID Tail;
DWORD TailLength;
} TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, *LPTRANSMIT_FILE_BUFFERS;
#define TF_DISCONNECT 0x01
#define TF_REUSE_SOCKET 0x02
#define TF_WRITE_BEHIND 0x04
BOOL
PASCAL FAR
TransmitFile (
IN SOCKET hSocket,
IN HANDLE hFile,
IN DWORD nNumberOfBytesToWrite,
IN DWORD nNumberOfBytesPerSend,
IN LPOVERLAPPED lpOverlapped,
IN LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers,
IN DWORD dwReserved
);
BOOL
PASCAL FAR
AcceptEx (
IN SOCKET sListenSocket,
IN SOCKET sAcceptSocket,
IN PVOID lpOutputBuffer,
IN DWORD dwReceiveDataLength,
IN DWORD dwLocalAddressLength,
IN DWORD dwRemoteAddressLength,
OUT LPDWORD lpdwBytesReceived,
IN LPOVERLAPPED lpOverlapped
);
VOID
PASCAL FAR
GetAcceptExSockaddrs (
IN PVOID lpOutputBuffer,
IN DWORD dwReceiveDataLength,
IN DWORD dwLocalAddressLength,
IN DWORD dwRemoteAddressLength,
OUT struct sockaddr **LocalSockaddr,
OUT LPINT LocalSockaddrLength,
OUT struct sockaddr **RemoteSockaddr,
OUT LPINT RemoteSockaddrLength
);
#ifdef __cplusplus
}
#endif
/* Microsoft Windows Extended data types */
typedef struct sockaddr SOCKADDR;
typedef struct sockaddr *PSOCKADDR;
typedef struct sockaddr FAR *LPSOCKADDR;
typedef struct sockaddr_in SOCKADDR_IN;
typedef struct sockaddr_in *PSOCKADDR_IN;
typedef struct sockaddr_in FAR *LPSOCKADDR_IN;
typedef struct linger LINGER;
typedef struct linger *PLINGER;
typedef struct linger FAR *LPLINGER;
typedef struct in_addr IN_ADDR;
typedef struct in_addr *PIN_ADDR;
typedef struct in_addr FAR *LPIN_ADDR;
typedef struct fd_set FD_SET;
typedef struct fd_set *PFD_SET;
typedef struct fd_set FAR *LPFD_SET;
typedef struct hostent HOSTENT;
typedef struct hostent *PHOSTENT;
typedef struct hostent FAR *LPHOSTENT;
typedef struct servent SERVENT;
typedef struct servent *PSERVENT;
typedef struct servent FAR *LPSERVENT;
typedef struct protoent PROTOENT;
typedef struct protoent *PPROTOENT;
typedef struct protoent FAR *LPPROTOENT;
typedef struct timeval TIMEVAL;
typedef struct timeval *PTIMEVAL;
typedef struct timeval FAR *LPTIMEVAL;
/*
* Windows message parameter composition and decomposition
* macros.
*
* WSAMAKEASYNCREPLY is intended for use by the Windows Sockets implementation
* when constructing the response to a WSAAsyncGetXByY() routine.
*/
#define WSAMAKEASYNCREPLY(buflen,error) MAKELONG(buflen,error)
/*
* WSAMAKESELECTREPLY is intended for use by the Windows Sockets implementation
* when constructing the response to WSAAsyncSelect().
*/
#define WSAMAKESELECTREPLY(event,error) MAKELONG(event,error)
/*
* WSAGETASYNCBUFLEN is intended for use by the Windows Sockets application
* to extract the buffer length from the lParam in the response
* to a WSAGetXByY().
*/
#define WSAGETASYNCBUFLEN(lParam) LOWORD(lParam)
/*
* WSAGETASYNCERROR is intended for use by the Windows Sockets application
* to extract the error code from the lParam in the response
* to a WSAGetXByY().
*/
#define WSAGETASYNCERROR(lParam) HIWORD(lParam)
/*
* WSAGETSELECTEVENT is intended for use by the Windows Sockets application
* to extract the event code from the lParam in the response
* to a WSAAsyncSelect().
*/
#define WSAGETSELECTEVENT(lParam) LOWORD(lParam)
/*
* WSAGETSELECTERROR is intended for use by the Windows Sockets application
* to extract the error code from the lParam in the response
* to a WSAAsyncSelect().
*/
#define WSAGETSELECTERROR(lParam) HIWORD(lParam)
#ifdef IPV6STRICT
#error WINSOCK2 required.
#endif // IPV6STRICT
#endif /* _WINSOCKAPI_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -