函数名

vtcp_io_set_hook_for_send_packet

声明

int WINAPI vtcp_io_set_hook_for_send_packet(FN_IO_SEND_PACKET fn,FN_IO_SEND_PACKET* fnold);

 

描述

设置挂接VTCP 发送 数据包 过滤函数。

输入

FN_IO_SEND_PACKET fn: 新处理函数地址。

FN_IO_SEND_PACKET* fnold: 老处理函数地址。

输出

返回值(错误码=0 成功)

参考windows

 

说明

通过设置发送包钩子函数,应用层可实现对VTCP数据包进行扩展,加密,过滤,防火墙等工作。

注意通过vtcp_io_send_packet发出的包,不会经过此钩子函数。

 

参考

 

typedef int (WINAPI * FN_IO_SEND_PACKET)(VTCP_SOCKET socket,SVTcpPkt* pkt,int cb,sockaddr* sai,int sailen);

 

typedef struct SVTcpPktHdr            

{

    unsigned short    ucmd;            

 

    unsigned short    usid;            

    unsigned short    usid_peer;       

 

    unsigned short    sin_port;        

    in_addr           sin_addr;        

 

}S_VTCP_PKT_HDR,*PS_VTCP_PKT_HDR;

 

 

typedef struct SVTcpPkt

{

    SVTcpPktHdr hdr;

 

    union

    {

       SVTcpPktConnect      connect;

       SVTcpPktConnectAck   connectAck;

       SVTcpPktData         data;

       SVTcpPktDataAck      dataAck;

       SVTcpPktSync         sync;

       SVTcpPktSyncAck      syncAck;

       SVTcpPktReset        reset;

       SVTcpPktResetAck     resetAck;

 

       char                 buffer[1];

 

    }body;

 

}S_VTCP_PKT,*PS_VTCP_PKT;