⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winsock.h

📁 实现应用层直接向MAC层发送数据
💻 H
📖 第 1 页 / 共 3 页
字号:
#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 + -