函数名
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;