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

📄 ripx.h

📁 一个演示使用ipx协议在局域网来传递包的例子
💻 H
字号:
/*============================================================================*/
/*   RIPX.H  (c) RocSoft, 1997.  IPX Network Packet Handling Package          */
/*============================================================================*/

#ifndef __RIPX__
#define __RIPX__

#ifdef __cplusplus
extern "C" {
#endif

#pragma pack(1)
typedef union tagIPX_NET_ADDR
{
        DWORD   dwAddr;
        BYTE    cbAddr[4];
} IPX_NET_ADDR;
#pragma pack()

#pragma pack(1)
typedef struct tagIPX_NODE_ADDR
{
        BYTE    cbAddr[6];
} IPX_NODE_ADDR;
#pragma pack()

#pragma pack(1)
typedef struct  tagOFFSET_SEGMENT { WORD wOffset, wSegment; } OFF_SEG;
typedef union tagIPX_MEM_ADDR
{
        DWORD           dwOffsetSegment;
        OFF_SEG         wOffSeg;
} IPX_MEM_ADDR;
#pragma pack()

#pragma pack(1)
typedef struct tagIPX_NET_ADDRESS
{
        IPX_NET_ADDR    netAddr;
        IPX_NODE_ADDR   nodeAddr;
        WORD            wSocket;
} IPX_NET_ADDRESS;
#pragma pack()

#pragma pack(1)
typedef struct tagIPX_LOCAL_ADDRESS
{
        IPX_NET_ADDR    netAddr;
        IPX_NODE_ADDR   nodeAddr;
} IPX_LOCAL_ADDRESS;
#pragma pack()

#pragma pack(1)
typedef struct tagIPX_HEADER
{
        WORD            wChecksum;
        WORD            wLength;
        BYTE            cbTransportControl;
        BYTE            cbPacketType;
        IPX_NET_ADDRESS destAddr;
        IPX_NET_ADDRESS srcAddr;
} IPX_HEADER;
#pragma pack()

#pragma pack(1)
typedef struct tagIPX_ECB               /*  Event Control Block :)  */
{
        IPX_MEM_ADDR    nextECB;        /*  Address of next ECB                             */
        IPX_MEM_ADDR    addrESR;        /*  Event Service Routine Address or NULL for none  */
        BYTE            cbInUse;
        BYTE            cbCompleting;
        WORD            wSocket;
        BYTE            cbIPXWorkSpace[4];
        BYTE            cbDriverWorkSpace[12];
        IPX_NODE_ADDR   immedAddr;
        WORD            wFragCount;
        IPX_MEM_ADDR    addrFrag;
        WORD            wFragSize;
} IPX_ECB;
#pragma pack()

BOOL            IPX_Available           ( void );
WORD            IPX_GetLastError        ( void );
WORD            IPX_OpenSocket          ( BOOL bPermanent, WORD wSocket );
BOOL            IPX_CloseSocket         ( WORD wSocket );
BOOL            IPX_GetLocalAddr        ( IPX_LOCAL_ADDRESS *pLocalAddr );
BOOL            IPX_SetIdleFlag         ( void );
BOOL            IPX_SendPacket          ( IPX_ECB *pECB );
BOOL            IPX_ListenForPacket     ( IPX_ECB *pECB );
BOOL            IPX_InitSendPacket      ( IPX_HEADER *pHDR, IPX_ECB *pECB, WORD wSocket, WORD wDataLength );
BOOL            IPX_InitReceivePacket   ( IPX_HEADER *pHDR, IPX_ECB *pECB, WORD wSocket, WORD wDataLength );

#ifdef __cplusplus
};
#endif

#endif

/*============================================================================*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -